首页 > 解决方案 > 为 ARM 中的生产 Azure 函数槽保留当前 AppSettings

问题描述

我希望为 Azure 函数实现一个暂存槽。我尝试采用的方法是在 ARM 模板中定义插槽以及其他基础设施和应用程序设置。然后,我会将应用程序部署到暂存槽并使用az.

我遇到的问题是应用程序设置有时包含特定于正在运行的应用程序版本的设置。在 ARM 模板中,我想将新的应用程序设置应用于暂存槽,同时保留生产槽上某些设置的当前设置值。只有在接下来的几个步骤中发生交换时,才应更新这些生产槽设置。

我一直无法找到在 ARM 中表达这一点的方法。我尝试使用引用将 appsetting 属性设置为其当前值。我不确定这是否可行,但我收到一个通用验证错误,没有详细说明失败的原因。

有没有办法在 ARM 中保持一些应用程序设置不变?

更新

这是我尝试保留配置的现有值的片段。

{
    "type": "Microsoft.Web/sites/config",
    "name": "MyApp/appsettings",
    "apiVersion": "2019-08-01",
    "properties": {
        "MY_APP_CONFIG1": "[reference(resourceId('Microsoft.Web/sites/config', 'MyApp', 'appsettings'), '2019-08-01', 'Full').properties.MY_APP_CONFIG1]"
    }
}

此处介绍的引用函数未通过模板验证。它给我的唯一信息是The deployment validation failed

标签: azureazure-functionsazure-web-app-serviceazure-resource-manager

解决方案


不,您必须在模板中设置所有这些。要将不同的值传递给您用于部署到不同环境(插槽)的模板,您可以使用参数(或参数文件)。您可能可以使用reference(xxx, xxx, 'Full')

https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-functions-resource#reference


推荐阅读