Конфигурация службы приложения шаблона ARM - состояние гонки / непоследовательное поведение - PullRequest
0 голосов
/ 26 октября 2018

Используя приведенный ниже шаблон ARM, мы включили диагностические настройки для нашей службы приложений , а также определили appSettings config в элементе resources.Проблема заключается в том, что периодически после развертывания нашей службы приложений из шаблона - appSettings не назначаются, но настройки диагностики есть.

Может ли кто-нибудь нам помочь, если есть лучший способ определения конфигурации для logs и appSettings для службы приложений, которая обеспечивает более согласованный вывод сайта?Мы ежедневно строим и разрушаем десятки сервисов приложений для PR-сборок, так что это очень очевидно.

AppSetting WEBSITE_LOAD_USER_PROFILE будет просто случайно отброшен при создании службы приложения.Нам не хватает dependsOn или нам нужно обновить apiVersion?

ServerFarm с настройками приложения + Log Config

{
    "$schema": "http://schema.management.azure.com/schemas/2018-05-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "siteName": {
            "type": "string"
        },
        "siteHostingPlanName": {
            "type": "string"
        },
        "resourceLocation": {
            "type": "string"
        }
    },
    "resources": [  
        {
            "apiVersion": "2016-09-01",
            "name": "[parameters('siteHostingPlanName')]",
            "type": "Microsoft.Web/serverfarms",
            "location": "[parameters('resourceLocation')]",
            "properties": {
                "name": "[parameters('siteHostingPlanName')]"
            },
            "sku": {
                "name": "P2V2",
                "tier": "PremiumV2",
                "capacity": 2
            }
        },
        {
            "apiVersion": "2014-11-01",
            "name": "[parameters('siteName')]",
            "type": "Microsoft.Web/sites",
            "location": "[parameters('resourceLocation')]",
            "dependsOn": [
                "[resourceId('Microsoft.Web/serverfarms', parameters('siteHostingPlanName'))]"
            ],
            "properties": {
                "name": "[parameters('siteName')]",
                "serverFarm": "[parameters('siteHostingPlanName')]",
                "siteConfig": {
                    "AlwaysOn": true,
                    "webSocketsEnabled": true,
                    "http20Enabled": true,
                    "requestTracingEnabled": true,
                    "requestTracingExpirationTime": "9999-12-31T23:59:00Z",                    
                    "httpLoggingEnabled": true,
                    "logsDirectorySizeLimit": 100,
                    "detailedErrorLoggingEnabled": true
                }
            },
            "resources": [
                {
                    "apiVersion": "2014-11-01",
                    "name": "appsettings",
                    "type": "config",
                    "dependsOn": [
                        "[resourceId('Microsoft.Web/Sites', parameters('siteName'))]"
                    ],
                    "properties": {
                        "WEBSITE_LOAD_USER_PROFILE": 1
                    }
                },
                {
                    "apiVersion": "2014-11-01",
                    "name": "logs",
                    "type": "config",
                    "dependsOn": [
                        "[resourceId('Microsoft.Web/Sites', parameters('siteName'))]"
                    ],
                    "properties": {
                        "applicationLogs": {
                            "fileSystem": {
                              "level": "Verbose"
                            }
                          },
                          "httpLogs": {
                            "fileSystem": {
                              "retentionInMb": 100,
                              "enabled": true
                            }
                          },
                          "failedRequestsTracing": {
                            "enabled": true
                          },
                          "detailedErrorMessages": {
                            "enabled": true
                          }
                    }
                }       
            ]
        }
    ]
}

1 Ответ

0 голосов
/ 29 октября 2018

Вместо определения параметров в отдельном ресурсе, вы должны настроить параметры приложения вместе с functionApp Resource.Я использовал это и определил различные настройки приложения, и он отлично работает.Попробуйте как приведенный ниже пример.

{
      "apiVersion": "[variables('sitesApiVersion')]",
      "type": "Microsoft.Web/sites",
      "kind": "functionapp",
      "location": "[resourceGroup().location]",
      "name": "[parameters('functionAppName')]",
      "scale": null,
      "properties": {
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('functionApp_appServicePlanName'))]",
        "siteConfig": {
          "appSettings": [
            {
              "name": "WEBSITE_LOAD_USER_PROFILE",
              "value": "1"
            }
           ]
        },
        "dependsOn": [
          "[resourceId('Microsoft.Web/serverfarms', parameters('functionApp_appServicePlanName'))]",
          "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]"
        ]
      }
    }
...