Azure 自动化上的 Get-AzureStorageKey 错误

Get-AzureStorageKey Error on Azure Automation

我正在使用 "Classic RunAs Connection" 配置 Azure 自动化 Runbook。 在我 select 使用此连接的 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 : An error occurred while sending the request.

At line:38 char:26

  • ... eAccountKey = Get-AzureStorageKey -StorageAccountName "MyStorageAccountName"

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

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

    • FullyQualifiedErrorId :

Microsoft.WindowsAzure.Commands.ServiceManagement.StorageServices.GetAzureStorageKeyCommand

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

有人可以帮助我吗?

谢谢!

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

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

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