Azure 自动化移动 blob 哈希表错误

Azure Automation moving blobs hashtable error

我正在尝试创建一个脚本,以便在 blob 被另一个自动化进程处理后将它们从一个容器移动到另一个容器。我正在使用的代码如下。

workflow Move-AttendeeFiles
{
    $connectionName = Get-AutomationConnection -Name 'AzureConnection'
    $storageAccountName = Get-AutomationVariable -Name 'StorageAccountName'
    $storageContainerName = Get-AutomationVariable -Name 'toprocessContainer'
    $destContainerName = Get-AutomationVariable -Name 'processedContainer'

    Connect-Azure `
        -AzureConnectionName $connectionName

    inlineScript{

        Select-AzureSubscription `
            -SubscriptionName $Using:connectionName

        Set-AzureSubscription ` 
            -SubscriptionName $Using:connectionName ` 
            -CurrentStorageAccount $Using:storageAccountName 

        Get-AzureStorageBlob `
        -Container $Using:storageContainerName | Start-AzureStorageBlobCopy `
        -DestContainer $Using:destContainerName 

    }
}

抛出以下错误

Could not retrieve 'System.Collections.Hashtable' connection asset. Check that you created this first in the Automation service.

我好像没看懂运行,一定是盯着它看了很久。任何帮助将不胜感激。

Connect-Azure runbook 将连接资产名称作为字符串。您正在将连接本身传递给它。改为传递连接名称。

Joe 的回答让我克服了哈希表错误,但我的代码中还有一些其他错误。我想 post 每个人的工作代码。

workflow Move-AttendeeFiles
{
    $connectionName = Get-AutomationVariable -Name 'azureConnectionName'
    $subId = Get-AutomationVariable -Name 'azureSubscriptionId'
    $storageAccountName = Get-AutomationVariable -Name 'StorageAccountName'
    $storageContainerName = Get-AutomationVariable -Name 'toprocessContainer'
    $destContainerName = Get-AutomationVariable -Name 'processedContainer'

    Connect-Azure `
        -AzureConnectionName $connectionName

    inlineScript{
        Select-AzureSubscription `
            -SubscriptionName $Using:connectionName

        Set-AzureSubscription `
            -CurrentStorageAccountName $Using:storageAccountName `
            -SubscriptionId $Using:subId

    }
}

请注意 Set-AzureSubscription 代码中使用 -SubscriptionId 而不是 -SubscriptionName 的区别,因为那不是正确的变量。