VSTS Azure powershell:未指定默认订阅

Her*_*ter 4 powershell azure azure-powershell azure-devops

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

它给了我以下错误:

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

VSTS azure powershell错误

我正在尝试运行的命令:

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

当我试图在本地运行时,我不得不打电话

Add-AzureAccount
Select-AzureRmSubscription -SubscriptionName "Visual Studio Premium with MSDN"
Run Code Online (Sandbox Code Playgroud)

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

更新:

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

Edd*_*SFT 6

由于您使用的是Azure Resource Manager,请检查以下内容:

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

我已在我身边测试过,它运行正常.

我的PowerShell脚本:

$website = Get-AzureRmWebApp | where {$_.Name -eq 'eddieapp0930'}
Write-Host $website.HostNames
Run Code Online (Sandbox Code Playgroud)

从"Azure PowerShell脚本"任务运行: 在此输入图像描述


Jas*_* Ye 5

谢谢你的问题.

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

如果您使用的是资源管理器,则正确的cmdlet为:
Login-AzureRmAccount
Get-AzureRmSubscription -SubscriptionName"name"| 选择-AnlandRmSubscription

或只使用-SubscriptionId而不是-SubscriptionName.

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

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