Azure ARM模板-设置应用程序设置和诊断日志设置

时间:2019-05-31 17:52:35

标签: azure-web-sites azure-resource-manager arm-template

我遇到了一个问题,该问题是我想要配置应用程序设置和诊断日志设置的应用程序服务的运行臂模板。

{

            "type": "Microsoft.Web/sites",
            "name": "[parameters('azureWebsiteName')]",
            "apiVersion": "[variables('appServiceApiVersion')]",
            "location": "[variables('location')]",
            "tags": {
                "Solution": "[parameters('solutionType')]",
                "Sku": "[parameters('solutionSku')]"
            },
            "properties": {
                "enabled": true,
                "clientAffinityEnabled": false,
                "serverFarmId": "[variables('hostingPlanName')]",
                "siteConfig": {
                    "alwaysOn": true,
                    "siteAuthEnabled": true,
                    "siteAuthSettings": {
                        "clientId": "[parameters('aadClientId')]",
                        "clientSecret": "[parameters('aadClientSecret')]",
                        "unauthenticatedClientAction": "[parameters('apiSiteUnauthenticatedClientAction')]",
                        "defaultProvider": "[parameters('apiSiteDefaultProvider')]",
                        "allowedAudiences": [
                            "[parameters('aadAppIdUri')]"
                        ]
                    },
                    "appSettings": [ ]
                }
            },
            "identity": {
                "type": "SystemAssigned"
            },
            "dependsOn": [
                "[resourceId('Microsoft.Web/serverfarms', variables('hostingPlanName'))]"
            ],
            "resources": [
                {
                    "type": "config",
                    "name": "appsettings",
                    "apiVersion": "[variables('appServiceApiVersion')]",
                    "dependsOn": [
                        "[resourceId('Microsoft.Web/sites/', parameters('azureWebsiteName'))]",
                        "[resourceId('Microsoft.Web/sites/config/', parameters('azureWebsiteName'), 'logs')]",
                        "[resourceId('microsoft.insights/components/', parameters('appInsightsName'))]",
                        "Microsoft.ApplicationInsights.AzureWebSites",
                        "[resourceId('Microsoft.KeyVault/vaults/', parameters('keyVaultName'))]",
                        "[resourceId('Microsoft.KeyVault/vaults/secrets', parameters('keyVaultName'), variables('storageAccountConnectionString'))]",
                        "[resourceId('Microsoft.KeyVault/vaults/secrets', parameters('keyVaultName'), variables('documentDBAccessKey'))]"
                    ],
                    "properties": {
                        "AzureWebJobsStorage": "[concat('@Microsoft.KeyVault(SecretUri=', reference(variables('storageAccountConnectionString')).secretUriWithVersion, ')')]"
                }
                },
                {
                    "type": "config",
                    "name": "logs",
                    "apiVersion": "[variables('appServiceApiVersion')]",
                    "dependsOn": [
                        "[resourceId('Microsoft.Web/sites/', parameters('azureWebsiteName'))]",
                        "[resourceId('Microsoft.Storage/storageAccounts/', parameters('storageName'))]",
                        "[concat('Microsoft.Storage/storageAccounts/', parameters('storageName'), '/blobServices/default/containers/', variables('appLogsContainerName'))]",
                        "[concat('Microsoft.Storage/storageAccounts/', parameters('storageName'), '/blobServices/default/containers/', variables('webServerLogsContainerName'))]"
                    ],
                    "properties": {
                        "httpLogs": {
                            "azureBlobStorage": {
                                "sasUrl": "[concat('https://',parameters('storageName'),'.blob.core.windows.net/',variables('webServerLogsContainerName'),'?',listServiceSas(parameters('storageName'), '2018-11-01', variables('webServerLogsSasProperties')).serviceSasToken)]",
                                "retentionInDays": "[parameters('diagnosticsLogsRetentionInDays')]",
                                "enabled": true
                            }
                        },
                        "failedRequestsTracing": {
                            "enabled": true
                        },
                        "detailedErrorMessages": {
                            "enabled": true
                        }
                    }
                },
                {
                    "type": "siteextensions",
                    "name": "Microsoft.ApplicationInsights.AzureWebSites",
                    "apiVersion": "[variables('appServiceApiVersion')]",
                    "dependsOn": [
                        "[resourceId('Microsoft.Web/Sites', parameters('azureWebsiteName'))]"
                    ],
                    "properties": {}
                }
            ]
        }

问题是当我部署它时,临时配置了日志配置,然后以某种方式取消了设置。 我相信这与多个配置对象有关(一个用于应用程序设置,一个用于日志)f我将删除应用程序设置配置,正确设置了日志并保持设置。

有人可以帮助我了解发生了什么吗? 谢谢!

2 个答案:

答案 0 :(得分:0)

只需将两个配置的属性合并到一个实体中,然后应用该实体即可。

之所以发生这种情况,是因为您用第二个写入覆盖了第一个写入。

答案 1 :(得分:0)

弄清楚了。我需要在应用设置日志中添加一个依赖项。

"dependsOn": [
...
"[resourceId('Microsoft.Web/sites/config/', parameters('azureWebsiteName'), 'appsettings')]"
...
]

因此日志配置看起来像

        {
            "type": "config",
            "name": "logs",
            "apiVersion": "[variables('appServiceApiVersion')]",
            "dependsOn": [
                "[resourceId('Microsoft.Web/sites/', parameters('azureWebsiteName'))]",
                "[resourceId('Microsoft.Web/sites/config/', parameters('azureWebsiteName'), 'appsettings')]",
                "[resourceId('Microsoft.Storage/storageAccounts/', parameters('storageName'))]",
                "[concat('Microsoft.Storage/storageAccounts/', parameters('storageName'), '/blobServices/default/containers/', variables('appLogsContainerName'))]",
                "[concat('Microsoft.Storage/storageAccounts/', parameters('storageName'), '/blobServices/default/containers/', variables('webServerLogsContainerName'))]"
            ],
            "properties": {
                "applicationLogs": {
                    "azureBlobStorage": {
                        "level": "[parameters('diagnosticsLogsLevel')]",
                        "sasUrl": "[concat(reference(concat('Microsoft.Storage/storageAccounts/', parameters('storageName'))).primaryEndpoints.blob, variables('appLogsContainerName'), '?', listAccountSas(parameters('storageName'), variables('storageApiVersion'), variables('listAccountSasRequestContent')).accountSasToken)]",
                        "retentionInDays": "[parameters('diagnosticsLogsRetentionInDays')]"
                    }
                },
                "httpLogs": {
                    "azureBlobStorage": {
                        "sasUrl": "[concat(reference(concat('Microsoft.Storage/storageAccounts/', parameters('storageName'))).primaryEndpoints.blob, variables('webServerLogsContainerName'), '?', listAccountSas(parameters('storageName'), variables('storageApiVersion'), variables('listAccountSasRequestContent')).accountSasToken)]",
                        "retentionInDays": "[parameters('diagnosticsLogsRetentionInDays')]",
                        "enabled": true
                    }
                },
                "failedRequestsTracing": {
                    "enabled": true
                },
                "detailedErrorMessages": {
                    "enabled": true
                }
            }
        },
相关问题