首页 > 解决方案 > Azure 应用服务槽不同值应用设置

问题描述

我有一个带有插槽的 webapp。两者都应具有应用设置名称 DISABLE_CRON。webapp(生产槽)应将此设置设置为 false,并且槽应将此设置设置为 true。我想用 ARM 模板来做这个。webapp 有许多 appsettings,例如数据库名称、数据库登录用户名和密码等。我希望所有这些设置都在一个变量中,这样我就不必为 webapp 编写一次,为插槽编写一次。基本上我只想在插槽上将值更改为 true 并保持所有其他设置相同。

"variables": {
    "appName": "[concat(parameters('applicationName'),'-',parameters('environment'),'-app')]",
    "hostingPlanName": "[concat(parameters('applicationName'),'-',parameters('environment'),'-plan')]",
    "dbserverName": "[concat('onlinecampaignsites-',parameters('environment'),'-dbs-01')]",
    "connectionString": "[concat('Database=', parameters('applicationName'), ';Data Source=', concat('onlinecampaignsites-',parameters('environment'),'-dbs-01'),'.mysql.database.azure.com;User Id=',parameters('administratorLogin'),'@',concat('onlinecampaignsites-',parameters('environment'),'-dbs-01'),';Password=',parameters('administratorLoginPassword'))]",
    "appInsightsName": "[concat(parameters('applicationName'),'-',parameters('environment'),'-appIn')]",
    "databaseName": "[parameters('applicationName')]",
    "storageName": "[concat(parameters('applicationName'),parameters('environment'),'stg')]",
    "serverFarmResourceGroup": "[resourceGroup().name]",
    "subscriptionId": "[subscription().subscriptionId]",
    "containerName01": "[concat(parameters('applicationName'),'-',parameters('environment'),'-uploads')]",
    "staging": "staging",
    "appsettings": {
        "DISABLE_CRON": "false",
        "HEJSAN": "Den vann den"
    }
},
"resources": [
    {
        "name": "[variables('appname')]",
        "type": "Microsoft.Web/sites",
        "location": "[resourceGroup().location]",
        "apiVersion": "2018-02-01",
        "dependsOn": [
            "[concat('Microsoft.Web/serverfarms/', variables('hostingPlanName'))]"
        ],
        "properties": {
            "siteConfig": {
                "appSettings": [
                    {
                        "name": "DISABLE_CRON",
                        "value": "true"
                    }
                ]
            },
            "hostNameSslStates":"[concat('{\"name\": \"',parameters('customDomain'),'\", \"sslState\": \"Disabled\", \"virtualIP\": null, \"thumbprint\": null, \"toUpdate\": null,\"hostType\": \"Standard\"}')]",
            "serverFarmId": "[concat('/subscriptions/', variables('subscriptionId'),'/resourcegroups/', variables('serverFarmResourceGroup'), '/providers/Microsoft.Web/serverfarms/', variables('hostingPlanName'))]",
            "hostingEnvironment": "",
            "httpsOnly": true
        },
        "resources": [
            {
                "apiVersion": "2018-02-01",
                "name": "slotconfignames",
                "type": "config",
                "dependsOn": [
                    "[concat('Microsoft.Web/sites/', variables('appName'))]"
                ],
                "properties": {
                    "appSettingNames": [ "DISABLE_CRON" ]
                }
            },
            {
                "apiVersion": "2018-02-01",
                "type": "config",
                "name": "appsettings",
                "dependsOn": [
                    "[concat('Microsoft.Web/sites/', variables('appName'))]"
                ],
                "properties": "[variables('appsettings')]"
            }
        ]
    },
    {
        "apiVersion": "2018-02-01",
        "type": "Microsoft.Web/sites/slots",
        "name": "[concat(variables('appName'), '/', variables('staging'))]",
        "location": "[resourceGroup().location]",
        "dependsOn": [
            "[resourceId('Microsoft.Web/Sites', variables('appName'))]",
            "[concat('Microsoft.Web/serverfarms/', variables('hostingPlanName'))]"
        ],
        "properties": {},
        "resources": [
            {
                "apiVersion": "2018-02-01",
                "type": "config",
                "name": "appsettings",
                "dependsOn": [
                    "[resourceId('Microsoft.Web/sites/slots', variables('appName'), variables('staging'))]"
                ],
                "properties": "[variables('appsettings')]"
            }
        ]
    },

在 ARM 模板示例中,有两个 appsettings。将 DISABLE_CRON 设置为 true 是行不通的,我只是想用这个例子来说明这一点。

标签: azureazure-web-app-serviceazure-resource-managerazure-webapps

解决方案


推荐阅读