【问题标题】:Azure ARM template - set application settings and diagnostic log setitngsAzure ARM 模板 - 设置应用程序设置和诊断日志设置
【发布时间】:2019-05-31 17:52:34
【问题描述】:

我在运行应用服务的 arm 模板时遇到了问题,我想在其中配置应用程序设置和诊断日志设置。

{

            "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": {}
                }
            ]
        }

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

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

【问题讨论】:

    标签: azure-web-app-service azure-resource-manager arm-template


    【解决方案1】:

    想通了。我需要在应用设置的日志中添加一个依赖项。

    "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
                    }
                }
            },
    

    【讨论】:

      【解决方案2】:

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

      发生这种情况是因为您用第二次写入覆盖了第一次写入。

      【讨论】:

      • 不起作用。当我将日志添加到 appSettings 配置中时,出现部署失败 - “Th 参数属性的值无效。”
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-21
      • 2019-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多