Azure:删除实例及其所有相关资源(磁盘、网络接口)的脚本或命令

Azure: Script or Command to delete instance and all its associated resources (disks, network interface)

我正在尝试找到一种方法来删除 azure 中的实例及其所有相关资源。但我没有看到任何直接的方法来完成它。我正在使用目前仅删除实例的 az vm delete -g resourcegroup -n myinstancename--yes 命令。在我的场景中,我不能使用powershell。

为了测试,我用 1 NIC, 1 Public IP and 2 Data disks.

创建了一个虚拟机

然后,我使用了下面的 az CLI 脚本:

$osDisk =  (az vm show --resource-group ansumantest --name ansumantest --query "storageProfile.osDisk.name" --output tsv)
$datadisks = (az vm show --resource-group ansumantest --name ansumantest --query "storageProfile.dataDisks[].name" --output tsv)
$nics= (az vm show --resource-group ansumantest --name ansumantest --query "networkProfile.networkInterfaces[].id" --output tsv)
foreach ($nic in $nics){
   $publicIps=az network nic show --id $nic --query "ipConfigurations[].publicIpAddress.id" --output tsv
}
az vm delete --resource-group ansumantest --name ansumantest --yes
if ($osDisk) { 
   az disk show --resource-group ansumantest --name $osDisk --yes
}
foreach ($datadisk in $Datadisks){
  az disk delete --resource-group ansumantest --name $datadisk --yes
}
foreach ($nic in $nics){
  az network nic delete --id $nic
}
foreach ($publicIp in $publicIps){
  az network public-ip delete --id $publicIp
}

输出:


您可以直接删除所有资源,同时 运行使用 VM 删除命令 也可以,但是有一些 先决条件 对于此方法,即在使用 CLI 创建 VM 时,您必须配置如下几个功能:

根据 az vm create 部分中的 Microsoft Document

  1. [--os-disk-delete-option {删除,分离}]

Specify the behavior of the managed disk when the VM gets deleted i.e whether the managed disk is deleted or detached. accepted values: Delete, Detach

  1. [--数据磁盘删除选项]

Specify whether data disk should be deleted or detached upon VM deletion.

  1. [--nic-delete-option]

Specify what happens to the network interface when the VM is deleted. Use a singular value to apply on all resources, or use = to configure the delete behavior for individual resources. Possible options are Delete and Detach.

如果上面3个配置为在创建VM时删除,那么当你运行 az vm delete 删除VM时默认删除这些资源

参考:

Github Support