我对Azure函数有一个疑问,当在同一项目中部署Azure功能时,您必须一次部署所有功能,但是您无法在同一项目中从VS到Azure部署单个功能。
有什么方法可以做到这一点,还是每个功能都必须在自己的项目中才能一次将一个功能部署到Azure?
这会让他们成为自己的资源,然后我猜。还是?
答案 0 :(得分:0)
在Visual Studio中,您必须具有每个功能的“发布”设置。 要部署每个功能,您将需要修改“ hosts.json”文件,例如
{
"functions": [
"QueueFunction",
"ProcessorFunction",
]
}
您可以具有1个功能或多个功能。如果将此保留为空,则将部署所有功能。
我建议您构建并部署DevOps来帮助您;或者,为每个功能分配单独的项目以避免部署复杂,将所有公共对象作为另一个共享项目。
希望这会有所帮助。
答案 1 :(得分:0)
在大多数情况下,部署单位应该是功能应用程序,而不是单个功能。部署功能应用程序本质上与部署Web应用程序相同
如果同一项目中的功能不相互依赖,并且我们不想将它们一起部署,则可以将它们拆分为单独的项目,然后将每个项目部署到不同的Function应用程序。至于资源,只要一个和多个功能应用程序共享相同的应用程序服务计划,它们之间的区别就不会太大。
将单个功能部署到具有现有功能的功能应用程序的风险
从技术上讲,我们可以从VS部署单个功能,只需右键单击并排除我们不需要部署的功能。如果Function应用仍然为空,或者我们已经选中Remove additional files at destination
(默认情况下应选中),那么这是绝对正确和安全的。
如果我们取消选中该设置以保留之前部署的功能,则可能导致不一致的行为。新部署的功能可能会覆盖现有功能所利用的某些程序集。此外,由于缺乏删除功能,我们在本地删除的无用文件可能会在线累积。