Вот пример с запросом в теле. Мои запросы довольно сложны и содержат много операторов let, поэтому передача запроса в теле проще. В приведенном ниже примере есть некоторые причуды PowerShell, но завтра я обновлю пример C #.
Оператор let в приведенном ниже примере довольно бессмысленный, в основном он показывает, что вы можете выполнять сложные запросы с помощью выражений let и т. Д.
AppId - это идентификатор ресурса Application Insights, а не инструментальный ключ. Ключ API - это просто длинная строка, и вы можете создать до 10 из них AFAIK.
В API Access вы найдете и идентификатор, и ключи (я добавил скриншот, так как их легко перепутать). При использовании функции app () используйте идентификатор приложения.
![enter image description here](https://i.stack.imgur.com/W29Ce.jpg)
$app1Id = "GUID"
$app2Id = "GUID"
$app1Key = "string"
$app2Key = "string"
# EXAMPLE: "X-Api-Key" = "key1:GUID1,key2:GUID2"
$headers = @{ "X-Api-Key" = "${app1Key}:$app1Id,${app2Key}:$app2Id"; "Content-Type" = "application/json" }
# EXAMPLE: "query" = "union app('GUID1').something, app('GUID2').something | limit 5"
$query = @{"query" = "let days=1d;union app('$app1Id').exceptions,app('$app2Id').exceptions | where timestamp > ago(days)"}
$body = ConvertTo-Json $query | % { [regex]::Unescape($_) }
$result = Invoke-RestMethod "https://api.applicationinsights.io/v1/apps/$app1Id/query" -H $headers -Body $body -Method POST
Приведенный выше запрос вернет все исключения для двух ресурсов Application Insights за последний день. Вы можете сделать запрос к 10 ресурсам на момент написания, 200 запросов в 30 секунд или максимум 86 400 запросов в день (UTC). Другие ограничения применяются, если вы используете ADD.
ПРИМЕЧАНИЕ: дополнительный {} в заголовке представляет собой причуду PowerShell в отношении переменных и использования символа двоеточия, и, как вы можете видеть в примере , вам не следует заключать в скобки ключи в шапке:)