При создании Azure App Insights с помощью REST API не удается создать ROLE.

Я генерирую API-ключ для App Insight. Я использую URL-адрес https://management.azure.com/subscriptions/ {subscriptionId} /resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/components/{resourceName}/ApiKeys "

У меня нет четкой документации, и я нашел это в MS SDK: https://github.com/Azure/azure-sdk-for-net/blob/master/sdk/applicationinsights/Microsoft.Azure.Management.ApplicationInsights/src/Generated/APIKeysOperations.cs

Однако, когда я пытаюсь сгенерировать, указав «имя», в ответ выдается ошибка:

{
    "code": "The API Key needs to have a Role",
    "message": "The API Key needs to have a Role",
    "innererror": {
        "diagnosticcontext": "e1f66da1-9247-459e-a519-6426fa1449d1",
        "time": "2019-09-20T07:48:20.2634617Z"
    }
}

Мое тело POST выглядит следующим образом:

{
    "name": "asimplekeyname"
}

Пожалуйста, помогите, если кто-то использовал этот конкретный API.


person Traze    schedule 20.09.2019    source источник


Ответы (1)


Вам необходимо включить в тело следующие свойства.

{ 
   "name":"test3",
   "linkedReadProperties":[ 
      "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/microsoft.insights/components/<appinsight-name>/api",
      "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/microsoft.insights/components/<appinsight-name>/agentconfig"
   ],
   "linkedWriteProperties":[ 
      "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/microsoft.insights/components/<appinsight-name>/annotations"
   ]
}

Эти три свойства соответствуют свойствам на портале -> ваше приложение -> API Access -> Create API key.

api - Read telemetry
agentconfig - Authenticate SDK control channel
annotations - Write annotations

Вам нужно выбрать хотя бы один из них, указать в теле запроса.

введите здесь описание изображения


Например, вы просто выбираете первый, как показано ниже.

введите здесь описание изображения

Тело должно быть:

{ 
   "name":"test3",
   "linkedReadProperties":[ 
      "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/microsoft.insights/components/<appinsight-name>/api" 
   ],
   "linkedWriteProperties":[]
}
person Joy Wang    schedule 20.09.2019
comment
Спасибо за подробный ответ. Вчера я решил эту проблему, используя: /subscriptions/ - person Traze; 21.09.2019