Azure自动化上的Get-AzureStorageKey错误

时间:2017-09-25 13:58:53

标签: powershell azure azure-automation

我正在使用“Classic RunAs Connection”配置Azure自动化Runbook。 在我使用此连接选择Azure订阅后,我将获取其中一个存储帐户的存储密钥,但问题是有时它可以正常工作,有时则不然。这就是我正在做的事情:

$ConnectionAssetName = "AzureClassicRunAsConnection" 
$Conn = Get-AutomationConnection -Name $ConnectionAssetName
$CertificateAssetName = $Conn.CertificateAssetName
$Cert = Get-AutomationCertificate -Name $CertificateAssetName 
Set-AzureSubscription -SubscriptionName $Conn.SubscriptionName -SubscriptionId $Conn.SubscriptionID -Certificate $AzureCert  
Select-AzureSubscription -SubscriptionId $Conn.SubscriptionID

$storageAccountKey = Get-AzureStorageKey -StorageAccountName "MyStorageAccountName" 

发生的瞬态错误是:

  

Get-AzureStorageKey:发送请求时发生错误。

     

在行:38 char:26

     
      
  • ... eAccountKey = Get-AzureStorageKey -StorageAccountName“MyStorageAccountName”

  •   
  • ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~

         
        
    • CategoryInfo:CloseError:(:) [Get-AzureStorageKey],HttpRequestException

    •   
    • FullyQualifiedErrorId:

    •   
  •   
     

Microsoft.WindowsAzure.Commands.ServiceManagement.StorageServices.GetAzureStorageKeyCommand

它大部分时间都有效,但有时会抛出此异常。

有人能帮助我吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

您需要使用RunAs连接 - ClassicRunAsConnections用于RDFE,KeyVault cmdlet使用您的AzureRm凭据。 RunAs凭据为您提供服务主体,您需要在KeyVault配置中授予该服务主体对KeyVault的访问权限

答案 1 :(得分:0)

经过一些不成熟的测试后,我决定将StorageKey存储在加密变量中。

我知道这不是最佳解决方案,但我没有发现问题。 原始解决方案大部分时间都在工作,但是错误发生时抛出的异常并没有帮助我找到它。