代码之家  ›  专栏  ›  技术社区  ›  whoami

删除虚拟机时如何删除相关资源

  •  0
  • whoami  · 技术社区  · 4 年前

    我正在使用 Azure CLI 版本 2.34.1 。我运行了以下命令来创建一个资源组,然后创建一个虚拟机。请注意,在删除VM时,我使用了删除相关资源的选项。

    az group create --name myTestRG --location eastus
    az vm create --resource-group myTestRG --name myTestWindows11VM --image MicrosoftWindowsDesktop:windows-11:win11-21h2-pro:22000.493.220201 --admin-username someusername --os-disk-delete-option delete --nic-delete-option delete
    

    后来,我使用以下命令删除了虚拟机。

    az vm delete --name MyTestWin11VM --resource-group myTestRG -y 
    

    但是,当我浏览到门户时,资源组仍然显示以下与VM相关的资源。 enter image description here

    我可能做错了什么?当我删除虚拟机本身时,是否有删除所有与VM关联的资源的方法?

    1 回复  |  直到 4 年前
        1
  •  0
  •   Jeremy Thompson    4 年前

    更新它的一个BUG:

    enter image description here


    Azure的工作方式是在资源组中对资源进行分组,这是所有服务创建中的必填字段。Azure之所以这样做,是因为许多资源都有依赖关系,例如带有NIC的VM、VNet&NSG。

    您可以利用这一点,只需删除资源组即可:

    az group delete --name myTestRG 
    

    Azure将制定依赖顺序,例如NSG、VNet、NIC、VM。您可以阅读它是如何进行订购的: https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/delete-resource-group?tabs=azure-cli

    如果我在一个资源组中有多个虚拟机,而我只想删除一个,会发生什么?

    有3个新选项 --os磁盘删除选项、--data磁盘删除选项和--nic删除选项 支持删除虚拟机和依赖项:

    az vm create \
        --resource-group myResourceGroup \
        --name myVM \
        --image UbuntuLTS \
        --public-ip-sku Standard \
        --nic-delete-option delete \
        --os-disk-delete-option delete \
        --admin-username azureuser \
        --generate-ssh-keys
    

    否则,使用Azure资源管理器模板(ARM模板)或名为Bicep的生成ARM模板的新工具编写整个脚本。值得继续使用原始CLI命令并按顺序删除依赖项。如果您能很好地使用CLI,那么您最终会得到一个可以与ARM模板一起使用的命令库。