2016-09-29 60 views
0

我試圖運行一些天藍色的powershell命令作爲我的Visual Studio Team Services使用Azure資源管理器構建的一部分。VSTS Azure PowerShell:沒有指定默認訂閱

它給了我下面的錯誤:

沒有默認訂閱已被指定。使用Select-AzureSubscription - 默認設置默認訂閱。

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構建中是不可能的。

UPDATE:

我已經將其配置爲使用蔚藍的經典模式,而不是資源管理器,在它的工作原理。我不認爲這是一個可行的生產解決方案,因爲天藍色經典模式已經過時。

+1

GET-AzureWebSite是cmdlet的 「經典」 版本,因此需要經典authn:從 「Azure的PowerShell腳本」 任務

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

運行。 Get-AzureRmWebApp是資源管理器cmdlet。 –

+0

謝謝!你能否添加一個答案,以便我可以接受它? –

+0

你可以參考艾迪的回答。 –

回答

4

由於您使用Azure的資源管理器,請檢查下面的事情:

  1. 確保「天青資源管理器」的服務端點正確添加。
  2. 就像提到的bmoore一樣,使用「Get-AzureRmWebApp」命令而不是「Get-AzureWebsite」命令。

我已經在我身邊測試過它,它工作正常。

我的PowerShell腳本: enter image description here

3

謝謝你的問題。

如果你正在使用的服務管理模式(經典模式),正確的cmdlet的是:
附加AzureAccount
GET-AzureSubscription -SubscriptionName「名」 |選擇-AzureSubscription

如果您使用資源管理器,正確的cmdlet的是:
登錄-AzureRmAccount
GET-AzureRmSubscription -SubscriptionName 「名」 | Select-AzureRmSubscription

或者只是使用-SubscriptionId而不是-SubscriptionName。關於ASM和ARM

的更多信息,請參考以下鏈接:
https://azure.microsoft.com/en-us/documentation/articles/resource-manager-deployment-model/

如果您還有疑問,歡迎回到這裏後。謝謝。

+0

是否可以在同一版本定義中使用兩者?例如,如果我想運行一些ARM模板,請使用「Publish-AzureWebsiteProject」類似ASM cmdlet。在調用ASM cmdlet之前調用Select-AzureSubscription會導致「訂閱ID x ...不存在」。 – click2install

相關問題