【发布时间】:2018-12-18 13:41:33
【问题描述】:
我有一个关于 Azure 函数的问题,当在同一个项目中部署 azure 函数时,你必须一次部署所有函数,你不能在同一个项目中从 VS 部署单个函数到 Azure。
有没有办法做到这一点,或者每个函数必须在自己的项目中才能一次将一个函数部署到 Azure?
这将使他们成为自己的资源,那么我猜也是。还是?
【问题讨论】:
标签: visual-studio azure deployment azure-functions
我有一个关于 Azure 函数的问题,当在同一个项目中部署 azure 函数时,你必须一次部署所有函数,你不能在同一个项目中从 VS 部署单个函数到 Azure。
有没有办法做到这一点,或者每个函数必须在自己的项目中才能一次将一个函数部署到 Azure?
这将使他们成为自己的资源,那么我猜也是。还是?
【问题讨论】:
标签: visual-studio azure deployment azure-functions
在大多数情况下,部署单元应该是 Function App,而不是单个函数。部署 Function App 与部署 Web App 基本相同
如果同一个项目中的函数不相互依赖并且我们不想将它们部署在一起,我们可以将它们拆分为单独的项目并将每个项目部署到不同的函数应用程序。在资源方面,一个和多个函数应用之间没有太大的区别,只要它们共享相同的应用服务计划即可。
将单个功能部署到具有现有功能的 Function 应用的风险
从技术上讲,我们可以从 VS 部署单个功能,只需右键单击并排除我们不需要部署的功能。如果 Function 应用还是空的或者我们已经勾选了Remove additional files at destination(应该默认勾选),这是绝对正确和安全的。
如果我们取消选中该设置以保留之前部署的那些功能,则可能会导致行为不一致。新部署的函数可能会覆盖现有函数利用的一些程序集。另外,我们在本地删除的无用文件可能会因为没有删除而在网上堆积。
【讨论】:
functions in host.json 是禁用列表中没有的功能,它只用于本地开发,与部署完全无关,请参阅doc。
在 Visual Studio 中,您必须为每个函数设置发布设置。 要部署每个功能,您必须修改“hosts.json”文件,如
{
"functions": [
"QueueFunction",
"ProcessorFunction",
]
}
您可以拥有 1 个功能或多个功能。如果您将其留空,则将部署所有功能。
我建议您构建和部署 DevOps 来帮助您;或者,为每个功能单独项目以避免部署复杂性,将所有公共对象作为另一个共享项目。
希望这会有所帮助。
【讨论】: