从Runbook的存储帐户中获取所有Blob名称

问题描述 投票:0回答:1

我有一个非常简单的脚本,当从远程powershell ISE(不使用Automation Runbook的RUNAS凭据)运行时绝对可以正常工作,但是当我们尝试从Automation Runbook运行它时,它将返回0。以下是代码:-

$connectionName = "AzureRunAsConnection"
$SubId = "XXXXXXXXXXXXXXXXXX"
try
{
    $servicePrincipalConnection = Get-AutomationConnection -Name $connectionName         
    Write-Verbose "Logging in to Azure..." -Verbose
    Connect-AzAccount -CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint -ApplicationId $servicePrincipalConnection.ApplicationId  -Tenant $servicePrincipalConnection.TenantId -ServicePrincipal
    Write-Verbose "Setting Subscription......" -Verbose
    Set-AzContext -SubscriptionId $SubId | Write-Verbose

}
catch {
        if (!$servicePrincipalConnection)
        {
            $ErrorMessage = "Connection $connectionName not found."
            throw $ErrorMessage
        } else{
            Write-Error -Message $_.Exception
            throw $_.Exception
        }
}

$storageAccount = Get-AzStorageAccount -ResourceGroupName $ResourceGroup -Name $StorageAccountName -ErrorAction SilentlyContinue

# Resource group name for the storage acccount
$ResourceGroup = "MYDEV01-RG"

# Storage account name
$StorageAccountName = "myDev01StrgName"


# Container name for analytics logs
$ContainerName = "`$logs"
$storageContext = $storageAccount.Context
$containers = New-Object System.Collections.ArrayList
$container = Get-AzStorageContainer -Context $storageContext -Name $ContainerName -ErrorAction SilentlyContinue |
        ForEach-Object { $containers.Add($_) } | Out-Null

Write-Output("> Container count: {0}" -f $containers.Count)

不确定由于自动化帐户(Runbook)无法使用而导致缺少诸如权限之类的东西,是否有帮助?

谢谢,

azure-storage azure-storage-blobs azure-automation azure-runbook
1个回答
0
投票

[在花了24小时之后,凝视并尝试了所有步骤,结果证明上述脚本正确无误,但STORAGE ACCOUNT的FIREWALL和NETWORK设置已设置为SELECTED NETWORK(您可以添加网络您想允许或选择“所有网络”的IP地址,这可以帮助我解决问题)。我绝不建议选择“所有网络”,但是为了进行测试,我们可以然后仅添加“选定的网络”,并且应该可以。enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.