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