使用Azure PowerShell创建VM遇容量限制错误求助
解决Azure创建VM时的SKU容量限制错误
错误原因
你遇到的错误直接指向Standard_B2ats_v2 SKU在eastus区域当前没有可用容量,这和AWS区域资源分布逻辑不同——即使是Azure的热门区域,特定SKU也可能因为临时供需导致缺货,和免费额度的核心数限制无关。
可行解决方案
1. 替换为eastus区域可用的合规SKU
先通过PowerShell查询eastus区域核心数≤4的可用VM SKU:
Get-AzVMSize -Location eastus | Where-Object {$_.NumberOfCores -le 4}
从返回结果中挑选符合Azure免费试用要求的SKU(比如Standard_B2s、Standard_D2s_v3等),修改原命令的-Size参数后重新执行。
修改后的命令示例:
New-AzVm -ResourceGroupName 'myResourceGroup' -Name 'myVM' -Location 'eastus' -Image 'MicrosoftWindowsServer:WindowsServer:2022-datacenter-azure-edition:latest' ` -Size Standard_B2s -VirtualNetworkName 'myVNet' -SubnetName 'mySubnet' -SecurityGroupName 'myNetworkSecurityGroup' -PublicIpAddressName 'myPublicIpAddress' -OpenPorts 80, 3389
2. 切换到eastus的可用区尝试
如果必须使用Standard_B2ats_v2,先查询该SKU在eastus哪些可用区有容量:
Get-AzComputeResourceSku | Where-Object {$_.Locations -contains "eastus" -and $_.Name -eq "Standard_B2ats_v2"} | Select-Object -ExpandProperty LocationInfo
找到状态为Available的可用区后,在原命令中添加-Zone参数指定该区域,比如:
New-AzVm -ResourceGroupName 'myResourceGroup' -Name 'myVM' -Location 'eastus' -Zone 1 -Image 'MicrosoftWindowsServer:WindowsServer:2022-datacenter-azure-edition:latest' ` -Size Standard_B2ats_v2 -VirtualNetworkName 'myVNet' -SubnetName 'mySubnet' -SecurityGroupName 'myNetworkSecurityGroup' -PublicIpAddressName 'myPublicIpAddress' -OpenPorts 80, 3389
3. 切换到其他区域
如果eastus区域的目标SKU长期缺货,可以考虑切换到资源更充足的区域(比如centralus、southcentralus),修改命令中的-Location参数即可。
注意事项
Azure免费试用对VM SKU有特定限制,仅部分B系列SKU(如B1s、B1ms、B2s)包含在免费额度内,选择SKU时需确认是否符合免费政策,避免产生额外费用。
内容的提问来源于stack exchange,提问作者Imp0sterSyndromeSufferer
相关产品推荐
相关产品推荐

