gpt4 book ai didi

powershell - 在 PowerShell 中创建异步 Azure VM

转载 作者:行者123 更新时间:2023-12-02 23:29:55 25 4
gpt4 key购买 nike

我正在尝试为一项大型作业生成 1000 个 Azure VM(是的,我知道成本)。这是在 PowerShell 脚本(参见下面的脚本)中异步完成的,因此在等待所有虚拟机启动时不会产生费用。

在脚本中,如果 Wait-JobReceive-Job 包含,则脚本运行时将创建所有请求的虚拟机,但如果 Wait-Job code> 和 Receive-Job 被注释掉,所有虚拟机都没有创建。创建什么虚拟​​机似乎是随机的。

有人能看出我这个脚本做错了什么吗?

$VMCount = 5
$Location = 'East US'
$Image = 'MyImage'
$AdminPassword = 'XXXXXXXXXX'
$LinuxUser = 'MyUser'
$InstanceSize = 'ExtraSmall' #extra small only for testing

$CloudServiceName = 'NewAzureMachinePrefix' #this is changed each time to something unique

for ($i = 1; $i -le $VMCount; $i++)
{
$jobId = Start-Job -ArgumentList $CloudServiceName$i, $Location, $Image, $AdminPassword, $LinuxUser, $InstanceSize -ScriptBlock {
param($ServiceName, $Loc, $Img, $Password, $User, $Size)
New-AzureVMConfig -Name $ServiceName -InstanceSize $Size -ImageName $Img |
Add-AzureProvisioningConfig -Linux -LinuxUser $User -Password $Password |
Add-AzureDataDisk -CreateNew -DiskSizeInGB 50 -DiskLabel $ServiceName -LUN 0 |
Remove-AzureEndpoint 'SSH' |
Add-AzureEndpoint -Protocol tcp -PublicPort 22 -LocalPort 22 -Name 'SSH' |
Set-AzureSubnet 'MySubnet' |
New-AzureVM -ServiceName $ServiceName -AffinityGroup 'MyGroup' -VNetName 'MyNet'
}

Write-Output $CloudServiceName$i
Wait-Job $jobId
Receive-Job $jobId
}

最佳答案

在我们的 Microsoft 代表发了几封电子邮件后,我明白了发生了什么。当使用关联组和/或虚拟网络在 Azure 中创建新虚拟机时,会创建一个独占锁。这一独占锁不允许多个请求访问关联组和/或虚拟网络。

关于powershell - 在 PowerShell 中创建异步 Azure VM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16367547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com