You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform创建ARM镜像VM后,销毁时如何同步删除托管系统磁盘?

解决Terraform销毁Azure VM时遗留系统磁盘的问题

问题原因

Azure托管磁盘的默认行为和AWS不同:通过VM资源创建系统磁盘时,默认会在VM销毁后保留磁盘,而AWS的EBS卷默认随实例一同销毁,这就是你遇到销毁VM后磁盘遗留的核心原因。

解决方案

在storage_os_disk块中添加delete_option = "Delete"配置,明确指定销毁VM时同步删除系统磁盘。

修改后的Terraform配置

resource "azurerm_virtual_machine" "this" {
  name                  = local.name_prefix
  location              = var.location
  resource_group_name   = module.core.resource_group_name
  network_interface_ids = [azurerm_network_interface.this.id]
  vm_size               = var.vm_size
  tags                  = local.tags

  storage_image_reference {
    id = data.azurerm_shared_image_version.dev.id
  }

  storage_os_disk {
    name              = local.name_prefix
    caching           = "ReadWrite"
    create_option     = "FromImage"
    managed_disk_type = var.vm_disk_type
    delete_option     = "Delete" # 新增配置,指定销毁VM时删除磁盘
  }

  os_profile {
    computer_name  = local.name_prefix
    admin_username = var.admin_username
  }

  os_profile_linux_config {
    disable_password_authentication = true
    ssh_keys {
      path     = "/home/${var.admin_username}/.ssh/authorized_keys"
      key_data = tls_private_key.this.public_key_openssh
    }
  }
}

额外说明

  • 若后续需要保留磁盘(比如用于数据备份),可将delete_option设置为默认值Detach,磁盘会从VM上分离但保留在资源组中。
  • 对于挂载的数据磁盘,同样可以在对应的storage_data_disk块中设置delete_option = "Delete",实现随VM同步销毁。

内容的提问来源于stack exchange,提问作者Peter Kahn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 18:05:03