如何将Visual Studio Azure Functions项目(多个功能)发布到不同的Azure Function应用

时间:2018-09-30 08:52:55

标签: azure visual-studio-2017 azure-functions azure-deployment

我在Visual Studio中有一个Azure函数项目,其中包含两个函数- HttpTriggerFunction1 TimerTriggerFunction1

我想将Visual Studio中的Azure Function项目发布到我在Azure上创建的不同的Azure Functions应用- HttpFunctionApp TimerFunctionApp

  • HttpTriggerFunction1 应该部署到 HttpFunctionApp
  • TimerTriggerFunction1 应该部署到 TimerFunctionApp

Visual Studio是否有实现上述部署策略的选项(可能是自定义发布配置文件?)?还是我需要使用VSTS的Release定义来将适当的功能发布到适当的功能应用程序,在这种情况下,如何实现这一点,因为我的DLL可能具有与其他功能(运行方法)相关的代码,制作所有功能应用程序?

我正在将VS 2017 15.8.2与最新的Azure Webjobs和工具一起使用。

1 个答案:

答案 0 :(得分:2)

执行此操作的通常方法是将代码拆分为单独的项目-包含HttpTriggerFunction1的Functions项目,包含TimerTriggerFunction1的Functions项目以及用于共享代码的库项目(如果有)。然后,您可以将每个Functions项目部署到其自己的Function App。

如果由于某些奇怪的原因不可行,您可以创建单独的配置,每个配置都有一个构建后步骤,该步骤删除function.json文件中您不希望使用的功能。例如,用于部署到HttpFunctionApp的配置将删除TimerTriggerFunction1/function.json。尽管DLL仍将包含Run方法,但是如果function.json文件不存在,Azure Functions运行时不会将它们视为函数。