我遇到了一个问题,该问题是我想要配置应用程序设置和诊断日志设置的应用程序服务的运行臂模板。
{
"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我将删除应用程序设置配置,正确设置了日志并保持设置。
有人可以帮助我了解发生了什么吗? 谢谢!
答案 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
}
}
},