4

我想使用 Bamboo(一种持续集成解决方案)进行自动化部署。我在这里(http://www.windowsazure.com/en-us/develop/net/common-tasks/continuous-delivery/#script)找到了一段脚本来提供帮助。主要代码片段:

#configure powershell with Azure 1.7 modules
Import-Module Azure

#configure powershell with publishsettings for your subscription
$pubsettings = $subscriptionDataFile
Import-AzurePublishSettingsFile $pubsettings
Set-AzureSubscription -CurrentStorageAccount $storageAccountName -SubscriptionName $selectedsubscription
write-host $storageAccountName
write-host "$selectedsubscription"

#set remaining environment variables for Azure cmdlets
$subscription = Get-AzureSubscription $selectedsubscription
$subscriptionname = $subscription.subscriptionname
$subscriptionid = $subscription.subscriptionid
$slot = $environment

#main driver - publish & write progress to activity log
Write-Output "$(Get-Date –f $timeStampFormat) - Azure Cloud Service deploy script started."
Write-Output "$(Get-Date –f $timeStampFormat) - Preparing deployment of $deploymentLabel for $subscriptionname with Subscription ID $subscriptionid."


Publish

$deployment = Get-AzureDeployment -slot $slot -serviceName $servicename
$deploymentUrl = $deployment.Url

Write-Output "$(Get-Date –f $timeStampFormat) - Created Cloud Service with URL $deploymentUrl."
Write-Output "$(Get-Date –f $timeStampFormat) - Azure Cloud Service deploy script finished."

我刚刚尝试通过执行从 cmd 运行此脚本powershell E:\CI\OCZDeployment\publish_cloud_service.ps1 -environment Staging -serviceName "ocz" -storageAccountName "t2vsoft" -packageLocation OCZ.cspkg -cloudConfigLocation ServiceConfiguration.Cloud.cscfg -subscriptionDataFile E:\CI\OCZDeployment\SubscriptionDataFile.publishsettings -selectedsubscription "Development Subscription"

,其中从 Azure 下载 publishsettings 文件。

但我不断收到错误消息:

New-AzureDeployment :未设置 CurrentStorageAccount。使用 Set-AzureSubscription subname -CurrentStorageAccount storageaccount 进行设置。

它肯定已在片段中设置。我什至尝试将 Set-AzureSubscription 行复制并粘贴到 New-AzureDeployment 函数中。没运气。

帮我!谢谢!

4

2 回答 2

4

固定的。不知道究竟是什么原因,但我通过执行删除了所有已注册的天蓝色订阅:

PS> Get-AzureSubscription | ForEach-Object { Remove-AzureSubscription $_.SubscriptionName }

并通过执行重新导入订阅:

PS> Import-AzurePublishSettingsFile xxx.publishsettings

这一切都奏效了!:)

订阅列表中确实有一些类似名称的订阅。可能存在冲突,因为 azure 脚本不知道他们真正想要哪一个。

于 2013-03-19T03:32:40.667 回答
1

如果您有多个订阅,则需要确保将要使用的订阅设置为默认值。这可以通过以下方式完成:

Select-AzureSubscription -SubscriptionName "{subscriptionName}" -Default

如果您不确定您的订阅名称是什么,您可以使用以下命令查看您的所有订阅:

Get-AzureSubscription
于 2014-08-01T16:06:09.413 回答