Azure App Insights для интеграции APIM на Gov Cloud Stage & Prod - PullRequest
0 голосов
/ 19 сентября 2018

Я работаю над развертыванием приложения в Azure Gov Cloud Stage & Prod.В Dev & QA мы используем APIM, подключенный к AppInsights, для сбора статистики и создания предупреждений, однако AppInsights недоступен в Stage Gov Cloud.

  1. Есть ли какие-либо официальные сроки доступности Application Insightsв Gov Cloud на стадии?

  2. В качестве обходного пути мы планировали создать ресурс Application Insights на Dev (скажем, AI-dev), который будет связан с APIM на стадии (скажем, APIM-стадии).Однако, когда мы хотим установить связь, мы переходим на этап APIM в портале Azure и пытаемся выбрать ресурс Application Insights - там нет ни одного доступного, существующие ресурсы AppInsights в Dev и QA не видны из APIM в рабочей области.,Можно ли настроить Stage таким образом, чтобы они были видны?Если да, то как?Мы ищем какие-либо средства для создания этой связи - либо вручную, либо автоматически с помощью API.

  3. Существуют ли какие-либо другие обходные пути для сбора статистики запросов приложений / APIM для развертываний Stage / Prod?Конечная цель состоит в том, чтобы оповещения о запросах (например, о неправильных запросах) работали для Stage / Prod.

1 Ответ

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

Вот что мы обнаружили после расследования:

  1. Microsoft заявляет, что целевой датой представления Application Insights в Gov Cloud на этапе является конец четвертого квартала 2018 года - по состоянию на 10/11/2018.

2. / 3.

Привязку Application Insights, расположенную в Dev (Commercial Cloud), можно связать с APIM, расположенным в облачной среде Gov, двумя способами - либо с использованием конвейера VSTS.задачи или REST API.Оказывается, что графический интерфейс Azure Portal по-прежнему не будет отображать какую-либо связь или отображать недопустимую связь после этого, но в итоге он работает.

Метод 1 (проверен и работает)

Задача VSTS:

task: AzureResourceGroupDeployment@2

Шаблон задачи VSTS:

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "appinsights-name": {
      "type": "string"
    },
    "instrumentation": {
      "type": "string"
    },
    "apim-name": {
      "type": "string"
    },
    "api-name": {
      "type": "string"
    }
  },
  "resources": [
    {
      "type": "Microsoft.ApiManagement/service/loggers",
      "name": "[concat(parameters('apim-name'), '/', parameters('appinsights-name'))]",
      "apiVersion": "2018-01-01",
      "scale": null,
      "properties": {
        "loggerType": "applicationInsights",
        "description": null,
        "credentials": {
          "instrumentationKey": "[parameters('instrumentation')]"
        },
        "isBuffered": true
      }
    },
    {
      "type": "Microsoft.ApiManagement/service/apis/diagnostics",
      "name": "[concat(parameters('apim-name'), '/', parameters('api-name'), '/', 'applicationinsights')]",
      "apiVersion": "2018-01-01",
      "scale": null,
      "properties": {
        "enabled": true
      }
    },
    {
      "type": "Microsoft.ApiManagement/service/apis/diagnostics/loggers",
      "name": "[concat(parameters('apim-name'), '/', parameters('api-name'), '/', 'applicationinsights', '/',parameters('appinsights-name'))]",
      "apiVersion": "2018-01-01",
      "scale": null,
      "properties": {
        "loggerType": "applicationInsights",
        "description": null,
        "credentials": {
          "instrumentationKey": "[parameters('instrumentation')]"
        },
        "isBuffered": true,
        "resourceId": "[parameters('appinsights-name')]"
      },
      "dependsOn": [
        "[resourceId('Microsoft.ApiManagement/service/apis/diagnostics', parameters('apim-name'), parameters('api-name'), 'applicationinsights')]"
      ]
    }
  ]
}

Метод 2 (не проверен)

PUT https://management.usgovcloudapi.net/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{apimServiceName}/loggers/applicationinsights?api-version=2018-01-01 HTTP/1.1
Authorization: Bearer
Content-Type: application/json
{
    "properties": {
        "loggerType": "applicationinsights",
        "description": null,
        "isBuffered": true,
        "resourceId": null,
        "credentials":{
            "instrumentationKey":"<ApplicationInsights-InstrumentationKey>"
        }
    }
}


PUT https://management.usgovcloudapi.net/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{apimServiceName}/diagnostics/applicationinsights?api-version=2018-01-01 HTTP/1.1
Authorization: Bearer
Content-Type: application/json

{
    "properties": {
        "enabled": true
    }
}
...