VSTS Azure powershell:未指定默认订阅

VSTS Azure powershell : No default subscription has been designated

我正在尝试 运行 一些 azure powershell 命令作为我使用 Azure 资源管理器构建 Visual Studio 团队服务的一部分。

它给我以下错误:

没有指定默认订阅。使用 Select-AzureSubscription -Default 设置默认订阅。

我正在尝试执行的命令 运行:

$website = Get-AzureWebsite | where {$_.Name -eq 'my-website'}
Write-Output ("##vso[task.setvariable variable=DeployUrl;]$website.HostNames")

当我尝试在本地 运行 时,我不得不调用

Add-AzureAccount
Select-AzureRmSubscription -SubscriptionName "Visual Studio Premium with MSDN"

让它工作,但在 VSTS 构建中是不可能的。

更新:

我已经将它配置为使用 azure 经典模式而不是资源管理器,它可以正常工作。我不认为这是一个可行的生产解决方案,因为 azure 经典模式已经过时了。

感谢您的提问。

如果您使用的是服务管理器模式(经典模式),正确的 cmdlet 是:
添加-AzureAccount
获取 AzureSubscription -SubscriptionName “名称” | Select-Azure订阅

如果您使用的是资源管理器,则正确的 cmdlet 是:
登录-AzureRmAccount
获取 AzureRmSubscription –SubscriptionName "name" | Select-AzureRm订阅

或者只使用 -SubscriptionId 而不是 -SubscriptionName。

更多关于ASM和ARM的信息,请参考下面的link:
https://azure.microsoft.com/en-us/documentation/articles/resource-manager-deployment-model/

如果您还有疑问,欢迎回到这里 post。谢谢

由于您使用的是 Azure 资源管理器,请检查以下事项:

  1. 确保 "Azure Resource Manager" 服务端点已正确添加。
  2. 使用 "Get-AzureRmWebApp" 命令而不是 bmoore 提到的 "Get-AzureWebsite" 命令。

我已经在我身边测试过了,它工作正常。

我的 PowerShell 脚本:

$website = Get-AzureRmWebApp | where {$_.Name -eq 'eddieapp0930'}
Write-Host $website.HostNames

运行 来自 "Azure PowerShell Script" 任务: