首页 文章

VSTS Azure powershell:未指定默认订阅

提问于
浏览
4

我正在尝试使用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经典模式而不是资源管理器,它的工作原理 . 我不认为这是一个可行的 生产环境 解决方案,因为azure经典模式已经过时了 .

2 回答

  • 6

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

    • 确保正确添加"Azure Resource Manager"服务 endpoints .

    • 使用"Get-AzureRmWebApp"命令而不是"Get-AzureWebsite"命令就像bmoore提到的那样 .

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

    我的PowerShell脚本:

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

    从"Azure PowerShell Script"任务运行:
    enter image description here

  • 5

    谢谢你的问题 .

    如果您使用的是服务管理器模式(经典模式),则正确的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/

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

相关问题