【问题标题】:Azure Automation: Parallel Job Handling (start-job)Azure 自动化:并行作业处理(开始作业)
【发布时间】:2014-11-12 07:27:38
【问题描述】:

我正在尝试将 Azure PowerShell 脚本转换为 Azure 自动化 Runbook,但在使用“start-job”命令时遇到了问题。调用内联脚本后,作业在启动后不久就会失败。在我看来,参数没有正确传递。

在 Azure 自动化中正确传递参数是否缺少什么?

失败的命令:

$CreatevNetGateway = { param($vNetName) New-AzureVNetGateway -VNetName $vNetName -GatewayType DynamicRouting } <#Start the jobs#> Start-Job $CreatevNetGateway -ArgumentList $vNetName1 Start-Job $CreatevNetGateway -ArgumentList $vNetName2 Wait-Job *

【问题讨论】:

    标签: powershell azure


    【解决方案1】:

    在 PowerShell 工作流中,当您将值传递到 InlineScript 块时,您需要将 $using 添加到值的前面。例如:

    workflow foo {
        $message = "hi"
    
        InlineScript {
            Write-Output -InputObject $using:message
        }
    }
    

    此外,不支持在 Azure 自动化沙箱中启动其他作业。看起来您正在尝试并行运行两个任务,然后仅在两者都完成后才执行某些操作。 PowerShell 工作流(Azure 自动化运行手册运行的语言/引擎)具有可用于此目的的并行关键字:

    workflow bar {
        parallel {
            New-AzureVNetGateway -VNetName $vNetName1 -GatewayType DynamicRouting
            New-AzureVNetGateway -VNetName $vNetName2 -GatewayType DynamicRouting
        }
        # do something that happens after both of those complete
    }
    

    【讨论】:

    • 第一个选项看起来我无法在调用脚本时将值作为属性传递,所以我不确定这是否可行。您正在调用 $using: 从内联脚本中。我可以尝试调用三个单独的内联脚本并将“等待”命令放在最后。我尝试了第二个选项,因为这正是我正在寻找的,但是 Azure 自动化轰炸了,说“并行”是一个“意外关键字”。
    • 我不确定您所说的作为属性传递是什么意思——您是指参数吗?例如,您希望 InlineScript 成为一个函数并动态接收 $message 变量?
    • 另外,我刚刚在 Azure 自动化中进行了并行测试,它可以工作。你确定你没有尝试在 InlineScript 中调用并行吗? InlineScript 将其内容作为 PowerShell 运行,而不是 PowerShell 工作流,因此 parallel 关键字在 InlineScript 中不起作用,因为它仅在 PowerShell 工作流中可用
    【解决方案2】:

    试试这个:

    $CreatevNetGateway = {
        New-AzureVNetGateway -VNetName $args[0] -GatewayType DynamicRouting
    }
    <#Start the jobs#>
    Start-Job $CreatevNetGateway -ArgumentList @($vNetName1)
    Start-Job $CreatevNetGateway -ArgumentList @($vNetName2)
    Get-Job | Wait-Job
    Get-Job | Receive-Job
    

    【讨论】:

    • 不幸的是,这不起作用。该参数从未通过。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-15
    • 2012-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-13
    相关资源
    最近更新 更多