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 的区别,因为那不是正确的变量。
我正在尝试创建一个脚本,以便在 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 的区别,因为那不是正确的变量。