VSTS Azure powershell:未指定默认订阅

时间:2016-09-29 13:46:30

标签: powershell azure azure-devops azure-powershell

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

它给了我以下错误:

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

VSTS azure powershell error

我正在尝试运行的命令:

$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经典模式而不是资源管理器,它的工作原理。我不认为这是一个可行的生产解决方案,因为天蓝色的经典模式已经过时了。

2 个答案:

答案 0 :(得分:6)

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

  1. 确保正确添加“Azure Resource Manager”服务端点。
  2. 使用“Get-AzureRmWebApp”命令代替“Get-AzureWebsite”命令,正如bmoore所提到的那样。
  3. 我已在我身边测试过,它运行正常。

    我的PowerShell脚本:

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

    从“Azure PowerShell脚本”任务运行: enter image description here

答案 1 :(得分:5)

感谢您的提问。

如果您使用的是服务管理器模式(经典模式),则正确的cmdlet为:
添加-AzureAccount
Get-AzureSubscription -SubscriptionName“name”|选择-AzureSubscription

如果您使用的是资源管理器,则正确的cmdlet为:
登录-AzureRmAccount
Get-AzureRmSubscription -SubscriptionName“name”|选择-AzureRmSubscription
或者只使用-SubscriptionId而不是-SubscriptionName。

有关ASM和ARM的更多信息,请参阅以下链接:
https://azure.microsoft.com/en-us/documentation/articles/resource-manager-deployment-model/

如果您仍有疑问,欢迎回复此处。感谢。