使用 Azure CLI 删除附加到 azure 虚拟机的资源

Deleting resources attached to azure virtual machine using Azure CLI

我正在编写一个 shell 脚本来删除 azure 虚拟机及其相关资源,但是在获取虚拟机的网络安全组 name/ids 和虚拟机的 public ip [=22] 时遇到问题=].

我有我的资源组的名称和机器本身的名称。此外,我使用以下命令找到了 vm 的 NIC:

vmNIC=$(az vm nic list --resource-group $rgName --vm-name $vmName --query [].id -o tsv);

并使用以下命令找到虚拟机的磁盘(OS 和数据):

vmOSDisk=$(az vm show -d -g $rgName -n $vmName --query "storageProfile.osDisk.managedDisk.id" -o tsv);
vmDataDisks=$(az vm show -d -g $rgName -n $vmName --query "storageProfile.dataDisks[].managedDisk.id" -o tsv); 

有谁知道如何检索虚拟机 NSG 的 name/ids 和虚拟机的 Public IP?

感谢您的帮助。

要检索虚拟机的 public IP,您可以使用

vmNIC=$(az vm nic list --resource-group $rgName --vm-name $vmName --query [].id -o tsv)
az network nic show --ids $vmNIC --query "ipConfigurations[].publicIpAddress.id" -o tsv

要获取虚拟机NSG的name/ids,可以使用

网卡级别NSG,

az network nic show --ids $vmNIC --query "networkSecurityGroup.id" -o tsv

子网级别NSG,

subnetID=$(az network nic show --ids $vmNIC --query "ipConfigurations[].subnet.id" -o tsv)
az network vnet subnet show --ids $subnetID --query "networkSecurityGroup.id" -o tsv