我正在使用“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
它大部分时间都有效,但有时会抛出此异常。
有人能帮助我吗?
谢谢!
答案 0 :(得分:0)
您需要使用RunAs连接 - ClassicRunAsConnections用于RDFE,KeyVault cmdlet使用您的AzureRm凭据。 RunAs凭据为您提供服务主体,您需要在KeyVault配置中授予该服务主体对KeyVault的访问权限
答案 1 :(得分:0)
经过一些不成熟的测试后,我决定将StorageKey存储在加密变量中。
我知道这不是最佳解决方案,但我没有发现问题。 原始解决方案大部分时间都在工作,但是错误发生时抛出的异常并没有帮助我找到它。