【发布时间】:2018-05-24 08:16:32
【问题描述】:
我有一个 Azure 自动化 Runbook,它为每个订阅启动一个子 Runbook。
foreach ($sub in $subscriptions)
{
$ChildRunbookInputParams = @{"SubscriptionId"="$($sub.SubscriptionId)"}
$job = Start-AzureRmAutomationRunbook `
-Name $ChildRunbookName `
-Parameters $ChildRunbookInputParams `
-ResourceGroupName $AutomationAccountResourceGroup `
-AutomationAccountName $AutomationAccountName
}
父 Runbook 和子 Runbook 都使用相同的 run-as 帐户。
我遇到的问题是运行手册似乎在共享上下文,即使它们作为独立作业运行。
父 Runbook 对包含自动化帐户的订阅执行 Set-AzureRmContext,以便它可以 Start-AzureRmAutomationRunbook。子 Runbook 对其传递的订阅 ID 执行 Set-AzureRmContext,以便它可以处理该订阅中的资源。
第一个子 Runbook 启动后,父 Runbook 中的后续 Start-AzureRmAutomationRunbook 调用将失败,因为它无法再找到指定的 Runbook。随着其他子 Runbook 的启动(父 Runbook 在第一个更改订阅之前启动了几个子作业),之前启动的子作业开始处理最后一个订阅的资源。
这是预期的行为吗?处理多个订阅似乎是一种常见要求;推荐的模式是什么?
【问题讨论】:
-
相关 GitHub 问题:github.com/Azure/azure-powershell/issues/1257
标签: powershell azure azure-automation