我正在尝试使用Azure资源管理器运行一些azure powershell命令作为我的Visual Studio Team Services构建的一部分 .
它给了我以下错误:
没有指定默认订阅 . 使用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经典模式已经过时了 .
2 回答
由于您使用的是Azure Resource Manager,请检查以下内容:
确保正确添加"Azure Resource Manager"服务 endpoints .
使用"Get-AzureRmWebApp"命令而不是"Get-AzureWebsite"命令就像bmoore提到的那样 .
我已在我身边测试过,它运行正常 .
我的PowerShell脚本:
从"Azure PowerShell Script"任务运行:
谢谢你的问题 .
如果您使用的是服务管理器模式(经典模式),则正确的cmdlet为:
Add-AzureAccount Get-AzureSubscription -SubscriptionName “name” | Select-AzureSubscription
如果您使用的是资源管理器,则正确的cmdlet是:
Login-AzureRmAccount Get-AzureRmSubscription –SubscriptionName "name" | Select-AzureRmSubscription
或者只使用-SubscriptionId而不是-SubscriptionName .
有关ASM和ARM的更多信息,请参阅以下链接:
https://azure.microsoft.com/en-us/documentation/articles/resource-manager-deployment-model/
如果您仍有疑问,欢迎回复此处 . 谢谢 .