Ошибка выше Please run 'az login' to setup account
произошла из-за того, что вы выполняли azure команды cli (например, az account show
) внутри azure задачи powershell.
Так что если вы хотите запускать azure команды cli внутри Azure powershell. Вам нужно будет запустить az login
для входа. например. az login --service-principal -u <app-url> -p <password-or-cert> --tenant <tenant>
. Если у вас нет сервисного принципала. Вы можете выполнить подробные шаги в этом документе .
Пожалуйста, проверьте документ Войдите в систему с помощью Azure CLI для получения дополнительной информации.
Обновление: используйте powershell для вызова Azure rest API.
Вы можете использовать Invoke-RestMethod
, чтобы сделать Azure rest API call. Вам все равно нужно будет обеспечить аутентификацию для вызовов API. Вы можете обратиться к приведенному ниже примеру из этого блога .
function Get-AccessToken {
$context = Get-AzContext
$profile = [Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider]::Instance.Profile
$profileClient = New-Object -TypeName Microsoft.Azure.Commands.ResourceManager.Common.RMProfileClient -ArgumentList ($profile)
$token = $profileClient.AcquireAccessToken($context.Subscription.TenantId)
return $token.AccessToken
}
$subscriptionid = "subscriptionid"
$rg_name = "off-rg"
$rm_endpoint = "https://management.azure.com"
$authHeader = @{
'Content-Type' = 'application/json'
'Authorization' = 'Bearer ' + (Get-AccessToken)
}
$uri = "$rm_endpoint/subscriptions/$subscriptionid/resourceGroups/$rg_name/providers/Microsoft.Compute/virtualMachines?api-version=2019-03-01"
$respone = Invoke-RestMethod -Method Get -Headers $authHeader -Uri $uri
Вы также можете проверить блог Access Azure REST API с помощью PowerShell для получения дополнительной информации.