使用Powershell在Azure自动化帐户中设置Api版本

时间:2020-07-10 15:51:14

标签: azure powershell

我在Powershell Azure自动运行手册中使用了以下消耗量使用详细信息。

Get-AzureRmConsumptionUsageDetail -StartDate $startDate -EndDate $endDate -ResourceGroup

相同的命令和Runbook在另一个预订中可以正常工作。 但是在其中一项订阅中,它给出了以下错误

当前api版本不支持订阅范围用法。 请在2019-10-01之后使用api版本

如何在Azure Powershell中设置apiversion?

1 个答案:

答案 0 :(得分:1)

Get-AzConsumptionUsageDetail没有ApiVersion参数。

我的解决方法是使用以下命令。首先,使用您的登录帐户获取令牌,然后请求API获取使用详细信息。 api-version是2019-10-01所提到的错误。

# login
Connect-AzAccount

# get accessToken
$resource = "https://management.azure.com"
$context = [Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider]::Instance.Profile.DefaultContext
$accessToken = [Microsoft.Azure.Commands.Common.Authentication.AzureSession]::Instance.AuthenticationFactory.Authenticate($context.Account, $context.Environment, $context.Tenant.Id.ToString(), $null, [Microsoft.Azure.Commands.Common.Authentication.ShowDialog]::Never, $null, $resource).AccessToken

#request REST API
$uri = "https://management.azure.com/{scope}/providers/Microsoft.Consumption/usageDetails?api-version=2019-10-01"
Invoke-RestMethod -Method 'Get' -Uri $uri -Headers @{ Authorization = "Bearer " + $accessToken }

{scope}应该代替与用法详细信息操作关联的范围。您可以参考doc了解更多详情。