我无法在任何地方找到一个例子!格式在Applications Insights REST API站点上发布here。它只是格式,没有例子。我想我能够遵循格式,但是当我尝试它时,我收到了错误消息"身份验证失败。授权'标题丢失。"通常,要获取此令牌,您必须在Azure AD中注册您的应用程序并遵循该过程。我没有需要注册的应用程序。我想使用他们的api / app 。我想要使用Azure API格式而不是公共API格式的原因是绕过rate limit。我们需要每分钟提出一次请求。救命啊!
答案 0 :(得分:1)
根据您的描述,您需要首先创建服务原则,然后使用它来获取API令牌消息。请参阅此链接:Use portal to create an Azure Active Directory application and service principal that can access resources。您将获得客户端ID(app id)和client_secret。您可以使用以下脚本获取令牌(使用Power Shell)。
##get token
$TENANTID="******"
$APPID="<client_id>"
$PASSWORD="<client_secret>"
$result=Invoke-RestMethod -Uri https://login.microsoftonline.com/$TENANTID/oauth2/token?api-version=1.0 -Method Post -Body @{"grant_type" = "client_credentials"; "resource" = "https://management.core.windows.net/"; "client_id" = "$APPID"; "client_secret" = "$PASSWORD" }
$token=$result.access_token
获得令牌后,您需要构造标头消息。如下所示:
$Headers=@{
'authorization'="Bearer $token"
'host'="management.azure.com"
'contentype'='application/json'
}
然后,您可以使用API来获取所需的信息。
Invoke-RestMethod -Uri $url -Headers $Headers -Method GET
更新
如果要使用Applications Insights REST API,则无需使用服务原则来获取令牌。您需要创建API密钥。请参阅此link。