azure - Azure:删除实例及其所有相关资源(磁盘、网络接口)的脚本或命令
问题描述
我正在尝试找到一种方法来删除 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时,您必须配置如下几个功能:
根据Microsoft 文档中的az vm create
部分:
- [--os-disk-delete-option {删除,分离}]
指定删除 VM 时托管磁盘的行为,即是删除还是分离托管磁盘。接受值:删除、分离
- [--data-disk-delete-option]
指定在删除 VM 时是否应删除或分离数据磁盘。
- [--nic 删除选项]
指定删除 VM 时网络接口发生的情况。使用奇异值应用于所有资源,或使用 = 配置单个资源的删除行为。可能的选项是删除和分离。
如果上面3个配置为在创建VM时删除,那么当你运行它时,az vm delete
它默认在要删除VM时删除这些资源。
参考:
推荐阅读
- c++11 - 悬停在 QLabel 上后如何可视化 QPushButton
- c++ - 工会成员的偏移量总是为零吗?
- reactjs - 当这些元素位于具有更高 z-index 的 div 下时,如何使用 testing-library 的 findByText() 查找元素?
- html - 如何定位其他所有图形标签?
- python - 我无法为代码创建最后 3 条规则
- typescript - 为什么 Typescript 不能在赋值中使用泛型的 keyof 类型并将其泛化为字符串?
- gatsby - 了解部署和挂钩
- java - 获取运营商姓名sim卡
- php - 我无法连接到 clearDB laravel heroku
- javascript - JavaScript 函数执行 consol.log(var) 但不执行 var2 = var