我在Visual Studio中有一个Azure函数项目,它包含两个函数 - HttpTriggerFunction1 和 TimerTriggerFunction1 .
我想将Azure Function项目从Visual Studio发布到我在Azure创建的不同Azure功能应用程序 HttpFunctionApp 和 TimerFunctionApp .
-
HttpTriggerFunction1 应部署到 HttpFunctionApp .
-
TimerTriggerFunction1 应部署到 TimerFunctionApp .
Visual Studio是否有选项来实现上述部署策略(可能是自定义发布配置文件?)?或者我是否需要使用VSTS的Release定义来将相应的函数发布到适当的函数app,在这种情况下,如何实现这一点,因为我的DLL可能具有与其他函数(Run方法)相关的代码,这些函数不应该是制作所有功能应用程序?
我使用VS 2017 15.8.2与最新的Azure Webjobs和工具 .
1 回答
通常的方法是将代码拆分为单独的项目 - 包含
HttpTriggerFunction1
的函数项目,包含TimerTriggerFunction1
的函数项目和共享代码的库项目(如果有) . 然后,您可以将每个Functions项目部署到其自己的Function App .如果由于某些奇怪的原因,这是不可行的,您可以改为创建单独的配置,每个配置都有一个构建后的步骤,该步骤删除了您不希望可用的函数的
function.json
文件 . 例如,部署到HttpFunctionApp
的配置将删除TimerTriggerFunction1/function.json
. 虽然DLL仍将包含Run方法,但如果function.json
文件不存在,Azure Functions运行时将不会将它们视为函数 .