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

标签 azure azure-devops azure-functions azure-rm-template

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

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

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

最佳答案

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

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 模板中!

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

关于从 Azure DevOps 部署新的 ARM 后删除了 Azure Function 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59740162/

相关文章:

azure - 是否可以在多个 Azure 网站上配置相同的域名?

azure - 是否可以在 Azure Pipeline Agent 上将 Azure KeyVault 与 RBAC 结合使用?

powershell - 如何在 VSTS 任务中使用最新的 AzureRM

azure-functions - 如何在 Visual Studio 2019 中为 C# Azure Functions zip 部署创建 .zip 文件?

具有 SharePoint 连接的 Azure 逻辑应用

Azure DevOps Pipeline 托管代理 - 在哪里可以找到系统功能?

visual-studio - 在 Azure Pipeline 中的 C# 项目上测试 NuGet 包安装

Azure Cosmos DB 输入绑定(bind) - 无法将 OFFSET 和 LIMIT 值作为参数传递?

azure - 在 Azure 中安排长时间运行的任务

azure - 如何为azure存储服务设置网络安全组规则?