如何在后台运行 Azure cmdlet?

如何在后台运行 Azure cmdlet?

一些 Azure PowerShell 命令的运行时间非常冗长;一个简单的任务(例如在虚拟机上设置静态 IP 地址)可能需要一分钟以上的时间(我猜这是因为命令实际上是在向 Azure 发送命令,并等待 Azure 执行请求的任务并报告);因此,尤其是当我需要大量使用它们(并进行独立操作)时,我会真的喜欢将它们作为后台作业运行,这样就可以向 Azure 发送多个请求并并行运行它们。

以该代码为例,它在多个虚拟机上设置了静态 IP 地址:

$vms = @{
"VM1"="192.168.0.11"
"VM2"="192.168.0.12"
"VM3"="192.168.0.13"
"VM4"="192.168.0.14"
"VM5"="192.168.0.15"
}

foreach ($vm in $vms.GetEnumerator())
{
    get-azurevm $vm.Key | Set-AzureStaticVNetIP $vm.Value | Update-AzureVM
}

这需要永远,因为每个命令可能需要一分钟以上的时间,并且需要在执行下一个命令之前完成。

是否可以告诉 Azure cmdlet“只需返回并继续执行您需要的操作,然后报告”?

我尝试过使用Start-Job,但这不起作用,因为后台作业不会继承父会话的环境,并且除了明显缺少的变量之外,这意味着它们没有登录到 Azure,因此无法执行任何命令。

答案1

相关内容