从 Azure DevOps 部署新的 ARM 后删除了 Azure Function 代码

nas*_*iar 4 azure azure-devops azure-rm-template azure-functions

我正在运行自定义 ARM 模板,通过 Azure DevOps Pipeline 为 Azure 功能创建基础设施(动态应用服务计划、存储帐户等)。

我还通过 Azure DevOps 从不同的 Azure DevOps 管道中的不同 Github 存储库部署我的函数代码。

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

nas*_*iar 9

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

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

当 ARM 模板运行时,它会替换应用程序服务的应用程序设置(也适用于函数)。

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

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

为了解决这个问题,我只需将 { "name": "WEBSITE_RUN_FROM_PACKAGE", "value": "1" } 添加到我的 ARM 模板中!

请注意,这与这个问题非常相似。我想指出的是,函数的 Azure DevOps 任务现在使用从包运行:Azure Functions ARM 模板部署删除函数