【问题标题】:Deploying web role in Azure throws exception on CurrentAccountStorageName在 Azure 中部署 Web 角色会在 CurrentAccountStorageName 上引发异常
【发布时间】:2014-01-30 22:50:27
【问题描述】:

我想使用 PowerShell CmdLets 将 Web 角色部署到 Azure。

我的脚本如下:

$subscription = "<name-of-subscription>"
$service = "<name-of-cloudservice>"
$slot = "staging"
$package = "path\to\package.cspkg"
$configuration = path\to\config.cscfg"
$deploymentLabel = "Deploy to $service"

Import-Module "C:\Program Files (x86)\Microsoft SDKs\Windows Azure\PowerShell\Azure\Azure.psd1"
Import-AzurePublishSettingsFile "C:\path-to.publishsettings"
Set-AzureSubscription -CurrentStorageAccount $service -SubscriptionName $subscription

# some more stuff to check whether to upgrade or to create ...

Set-AzureDeployment -Upgrade -Slot $slot -Package $package -Configuration $configuration -label $deploymentLabel -ServiceName $service -Force

当我执行它时会抛出一个错误:

Exception: The subscription named <name-of-subscription> already exists.

我想既然我已经导入了我的发布设置文件,我可以摆脱Set-AzureSubscription。但是,一旦我这样做了,我就会收到下一个错误:

Exception: CurrentStorageAccountName is not set. 
Use Set-AzureSubscription subname -CurrentStorageAccountName storageaccount to set it. 

这是首先给我错误的行,所以我不确定我需要如何设置 storageaccountname 而不会导致错误。

我还做了一个小测试:

Import-AzurePublishSettingsFile "C:\path-to.publishsettings"

Get-AzureSubscription | Format-Table

执行此操作后,我会得到以下输出(重新格式化):

SubscriptionName:        <name-of-subscription>
SubscriptionId:          123456789-123...
ServiceEndpoint:         https://man....
ActiveDirectoryEndpoint:  
ActiveDirectoryTenantId:
IsDefault:               True 
Certificate              [Subject]
CurrentStorageAccountName 
CurrentCloudStorageAccount 
ActiveDirectoryUserId

如您所见,CurrentStorageAccountName 为空,但我不知道如何将其设置为正确的值。

我查找了其他一些脚本,但它们似乎都具有这种导入顺序,然后进行设置。知道为什么这不起作用以及如何解决吗?

【问题讨论】:

    标签: powershell azure azure-web-roles powershell-cmdlet


    【解决方案1】:

    您正在尝试将 CurrentStorageAccount 设置为您的云服务的名称,但您应该将其设置为您的 Blob 存储帐户的名称。获取您的存储帐户列表

    PS U:\>Get-AzureStorageAccount |select StorageAccountName 
    
    StorageAccountName
    ------------------
    portalvhdsgsomething
    storage1
    storage2
    storage3
    

    然后运行您之前失败的行,但使用您的存储帐户的名称,即。

    Set-AzureSubscription -CurrentStorageAccount storage2 -SubscriptionName $subscription
    

    您可以使用

    确认您的更改
    PS U:\>Get-AzureSubscription | select CurrentStorageAccount
    
    CurrentStorageAccount      : storage2
    

    【讨论】:

    • 也试过了,但没用
    • 你能说得更具体点吗?哪个部分失败,错误是什么?
    • 同上:Exception: The subscription named &lt;name-of-subscription&gt; already exists.
    • 嗯.. 在运行 Set-AzureSubscription 之前尝试 Select-AzureSubscription -SubscriptionName $subscription 那么你会收到错误吗?
    【解决方案2】:

    您需要使用 -CurrentStorageAccountName 作为 Set-AzureSubscription 的参数。

    【讨论】:

    • 这就是我所拥有的:Set-AzureSubscription -CurrentStorageAccount $service -SubscriptionName $subscription
    【解决方案3】:

    对于 Set-AzureSubscription,MSDN 文档将 -SubscriptionName 参数显示为参数 1,而不是名称。错误消息的建议修复甚至暗示你需要做Set-AzureSubscription &lt;service&gt; -CurrentStorageAccount &lt;storage solution&gt; 也许只是移动就可以解决它?

    Set-AzureSubscription -SubscriptionName $subscription -CurrentStorageAccount $service
    

    参考:http://msdn.microsoft.com/en-us/library/dn495189.aspx

    【讨论】:

    • 我也试过了,但顺序似乎无关紧要
    • 在你的脚本中究竟是哪里抛出了错误?
    • 当我在执行Set-AzureDeployment时不做Set-AzureSubscription,否则在Set-AzureSubscription
    • 我能想到的唯一另一件事是,除了 $subscription 中的内容之外,您的“当前订阅”有不同的订阅,也许它被定义为文件导入的一部分?尝试做一个get-azuresubscription | set-azuresubscription -currentstorageaccountname $service 看看是否可以清除它。如果是这样,您可能有冲突的订阅引用。我今晚出去了,我看看有没有更好的主意,明天再来看看。
    • 不,当我执行 Get-AzureSubscription 时,它只显示那个,并且 CurrentStorageAccount 为空。谢谢您的帮助!晚安。
    【解决方案4】:

    我已经找到原因了。您似乎不能将订阅名称作为命名参数包含在内。更改此行:

    Set-AzureSubscription -CurrentStorageAccount $service -SubscriptionName $subscription
    

    这一行成功了

    Set-AzureSubscription $subscription -CurrentStorageAccount $service
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-17
      • 1970-01-01
      相关资源
      最近更新 更多