Как настроить понимание приложения из шаблонов конвейера выпуска / ARM - PullRequest
0 голосов
/ 20 февраля 2019

У нас есть конвейер выпуска Azure DevOps, который настраивает все наши ресурсы Azure в определенном месте.Я могу создать все успешно с помощью шаблонов ARM, но я пытаюсь связать службу приложений с ресурсом App Insights.

Если бы я делал это вручную, я бы нажал кнопку «Включить расширение сайта»в блейде AppInsights службы приложений (под заголовком «Включить понимание приложения через расширение сайта без повторного развертывания кода»).

Я попытался добавить шаг «Управление службой приложения Azure» в конвейер выпуска,установить расширение «Application Insights extension для службы приложений Azure»:

Screenshot of Release Pipeline Step for Installing AppInsights

Кроме того, я добавил «Управление службой приложений Azure»перейдите к моему конвейеру выпуска, установите «Включить непрерывный мониторинг»:

Screenshot of Release Pipeline Step for Enabling Continuous Monitoring

Но в результате все равно подключено AppInsights, но расширение неустановлено:

Screenshot of Azure Portal showing extension is not turned on

Есть ли способ сделать это автоматически?Через шаблон ARM, сценарий PowerShell или что-то еще?

Редактировать: В колонке «Расширения» я вижу «Расширение Application Insights для службы приложений Azure» (v2.6.5) и «Расширения ведения журнала ядра ASP.NET» (v2.2.0), но меня по-прежнему просят «Включить расширение сайта» в колонке «Aplication Insights».

Ответы [ 2 ]

0 голосов
/ 12 апреля 2019

В ARM-шаблоне вы можете сделать:

    {
      "type": "Microsoft.Web/sites",
      "apiVersion": "2018-02-01",
      "name": "[variables('web_app_service_name')]",
      "location": "[resourceGroup().location]",
      "dependsOn": [
        "[resourceId('Microsoft.Web/serverfarms', variables('plan_name'))]",
        "[resourceId('Microsoft.Insights/components', variables('app_insights_name'))]"
      ],
      "kind": "app",
      "properties": {
        "siteConfig": {
          "appSettings": [
            {
              "name": "APPINSIGHTS_INSTRUMENTATIONKEY",
              "value": "[reference(variables('app_insights_name'), '2015-05-01').InstrumentationKey]"
            },
            {
              "name": "ApplicationInsightsAgent_EXTENSION_VERSION",
              "value": "~2"
            },
            {
              "name": "XDT_MicrosoftApplicationInsights_Mode",
              "value": "recommended"
            },
            {
              "name": "InstrumentationEngine_EXTENSION_VERSION",
              "value": "~1"
            },
            {
              "name": "DiagnosticServices_EXTENSION_VERSION",
              "value": "~3"
            },
            {
              "name": "APPINSIGHTS_PROFILERFEATURE_VERSION",
              "value": "1.0.0"
            },
            {
              "name": "XDT_MicrosoftApplicationInsights_BaseExtensions",
              "value": "~1"
            }
          ]
        }
      }
    }

См. Документацию на https://docs.microsoft.com/en-us/azure/azure-monitor/app/azure-web-apps#automate-monitoring

0 голосов
/ 20 февраля 2019

Я думаю, вам нужно сделать что-то подобное:

    {
        "apiVersion": "2015-08-01",
        "name": "[parameters('webSiteName')]",
        "type": "Microsoft.Web/sites",
        "location": "[resourceGroup().location]",
        "tags": {
            "[concat('hidden-related:', resourceGroup().id, '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]": "Resource",
            "displayName": "Website"
        },
        "dependsOn": [
            "[resourceId('Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]",
            "[resourceId('microsoft.insights/components/', parameters('appInsightsName'))]"
        ],
        "properties": {
            "name": "[parameters('webSiteName')]",
            "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('hostingPlanName'))]"
        },
        "resources": [
            {
                "apiVersion": "2015-08-01",
                "name": "appsettings",
                "type": "config",
                "dependsOn": [
                    "[resourceId('Microsoft.Web/Sites', parameters('webSiteName'))]",
                    "Microsoft.ApplicationInsights.AzureWebSites"
                ],
                "properties": {
                    "APPINSIGHTS_INSTRUMENTATIONKEY": "[reference(concat('microsoft.insights/components/', parameters('appInsightsName'))).InstrumentationKey]"
                }
            },
            {
                // this bit installs application insights extension
                "apiVersion": "2015-08-01",
                "name": "Microsoft.ApplicationInsights.AzureWebSites",
                "type": "siteextensions",
                "dependsOn": [
                    "[resourceId('Microsoft.Web/Sites', parameters('webSiteName'))]"
                ],
                "properties": {
                }
            }
        ]
    }

Я никогда не пробовал, но выглядит правильно, ссылка на пример, который я нашел: https://github.com/tomasr/webapp-appinsights/blob/master/WebSite.json

...