如何异步执行或将Azure PowerShell操作并行化以节省时间?

时间:2015-11-06 11:29:30

标签: powershell azure

在我的脚本中,有10个端点配置操作连续10个端点:(请注意:我是Azure PoweShell的新手,昨天开始使用,但我是经验丰富的开发人员)

Get-AzureVM –ServiceName myservice –Name myvm | 
    Add-AzureEndpoint –Name SqlEndpoint –Protocol tcp –LocalPort 1433 `
    –PublicPort 1433 –ACL $acl | 
    Update-AzureVM

不幸的是,需要10-15秒才能完成,并且它们以序列化的方式执行:下一个只在前一个完成时启动,因此10个操作需要2分钟。

如果我能以某种方式加快速度,我会很高兴的。我假设这种序列化方式不是来自深度Azure本质(架构),因为我们可以想象10个客户端在同一时间连接并向服务器发出10个操作。 (我强烈希望Azure不会在内部排队并在10x15秒内执行它们。)

  • 问:我是否可以以异步方式向Azure PowerShell发出操作(作为副作用,无法检查结果?
  • 问':如果没有这种通用的异步方式,我可以将这个特定的10端点配置操作作为一个操作吗?

1 个答案:

答案 0 :(得分:1)

是的,您只需多次致电Add-AzureEndpoint(或Set-AzureEndpoint)并仅调用Update-AzureVM cmdlet (最后):

$vm = Get-AzureVM –ServiceName myservice –Name myvm  
Add-AzureEndpoint –Name SqlEndpoint –Protocol tcp –LocalPort 1433 –PublicPort 1433 –ACL $acl -vm $vm
Add-AzureEndpoint –Name Endpoint2 ...
Add-AzureEndpoint –Name Endpoint3 ...
...
$vm | Update-AzureVM