使用az vm create无法正确关联现有Azure VNet问题咨询
解决跨资源组使用现有VNet创建VM的问题
问题原因
你执行的az vm create命令仅指定了VNet名称,未明确该VNet所属的资源组。Azure CLI默认会在你指定的目标资源组(rg-z-a2fp-wfx-vm-test)内查找对应VNet,找不到就自动创建同名新VNet,这就是出现非预期结果的原因。
解决方法
要使用其他资源组中的现有VNet,有两种可行方式:
方式1:指定VNet所在的资源组
添加--vnet-resource-group参数,明确目标VNet所属的资源组名称,修改后的命令如下:
az vm create --resource-group rg-z-a2fp-wfx-vm-test --name $VMname --image "/subscriptions/$ID/resourceGroups/rg-flexrx-dev-vm/providers/Microsoft.Compute/galleries/WFX_GI_Gallery/images/WFX-GI-19gen/versions/0.0.1" --admin-username $user --public-ip-address "" --size Standard_ds2_v2 --vnet-name vnet-z-a2fp-flexrxvm-n-001 --vnet-resource-group rg-z-a2fp-flexrx-n-001 --subnet sn-z-a2fp-flexrxvm-vn1 --nsg "" --generate-ssh-keys
方式2:直接使用VNet的资源ID
如果你知道VNet的完整资源ID,可直接用ID代替名称,让Azure CLI精准定位目标VNet,命令示例如下:
az vm create --resource-group rg-z-a2fp-wfx-vm-test --name $VMname --image "/subscriptions/$ID/resourceGroups/rg-flexrx-dev-vm/providers/Microsoft.Compute/galleries/WFX_GI_Gallery/images/WFX-GI-19gen/versions/0.0.1" --admin-username $user --public-ip-address "" --size Standard_ds2_v2 --vnet "/subscriptions/你的订阅ID/resourceGroups/rg-z-a2fp-flexrx-n-001/providers/Microsoft.Network/virtualNetworks/vnet-z-a2fp-flexrxvm-n-001" --subnet sn-z-a2fp-flexrxvm-vn1 --nsg "" --generate-ssh-keys
注意:确保当前Azure账号对目标VNet所在的资源组拥有足够权限(如网络参与者权限),否则会触发权限不足的错误。
内容的提问来源于stack exchange,提问作者Joe Link
相关产品推荐
相关产品推荐

