从Azure DevOps进行新的ARM部署后删除了Azure功能代码

时间:2020-01-14 19:02:23

标签: azure azure-devops azure-functions arm-template

我正在运行一个自定义ARM模板,以通过Azure DevOps管道为Azure功能创建基础结构(动态应用程序服务计划,存储帐户等)。

我还将通过Azure DevOps从另一个Github存储库中的另一个Azure DevOps管道中部署我的功能代码。

在成功部署基础结构和代码之后,如果基础结构的管道再次运行,即使我对基础结构所做的更改不会影响该功能并且我以增量模式运行,它也会删除代码。

1 个答案:

答案 0 :(得分:2)

事实证明,该问题是缺少的设置。

https://docs.microsoft.com/en-ca/azure/azure-functions/run-functions-from-deployment-package

运行ARM模板时,它将替换应用程序服务的应用程序设置(也适用于功能)。

我没有意识到用于部署功能代码的Azure Dev Ops任务实际上是使用程序包部署方法的这种新运行方式,因此我应该在ARM模板的“应用程序设置”部分中进行设置。

在部署代码后第二次运行ARM模板时,它正在删除WEBSITE_RUN_FROM_PACKAGE设置,以使函数不知道代码在哪里。

要解决此问题,我只需在我的ARM模板中添加{“ name”:“ WEBSITE_RUN_FROM_PACKAGE”,“ value”:“ 1”}!

请注意,这与该问题非常相似。我想指出,函数的Azure DevOps任务现在使用“从程序包运行”:Azure Functions ARM Template deploy deletes Functions