You need to enable JavaScript to run this app. 如何使用Terraform配置Azure Managed Disks的备份
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Terraform配置Azure Managed Disks的备份

实现Azure托管磁盘备份所需Terraform资源

你需要用到azurerm provider提供的3个专用资源分别对应你提到的三类配置:

  • 备份保管库:azurerm_data_protection_backup_vault,用于存储磁盘备份数据的加密保管库
  • 备份策略:azurerm_data_protection_backup_policy_disk,用于定义定时备份周期、备份数据保留时长等规则
  • 备份关联实体:azurerm_data_protection_backup_instance_disk,用于将目标托管磁盘与备份保管库、备份策略绑定,触发自动备份
完整配置示例

首先确保你使用的azurerm provider版本不低于3.0.0,完整配置如下:

# 你已有的托管磁盘配置
resource "azurerm_managed_disk" "mongodb_disk" {
  name                 = "${var.env_name}-mongodb-disk"
  location             = var.resource_group.location
  resource_group_name  = var.resource_group.name
  create_option        = "Empty"
  storage_account_type = "Premium_LRS"
  disk_size_gb         = var.mongo_db_disk_size_in_gb
}

# 1. 创建备份保管库
resource "azurerm_data_protection_backup_vault" "disk_backup_vault" {
  name                = "${var.env_name}-disk-backup-vault"
  resource_group_name = var.resource_group.name
  location            = var.resource_group.location
  datastore_type      = "VaultStore"
  redundancy          = "LocallyRedundant" # 可根据需求修改为GeoRedundant/ZoneRedundant
}

# 2. 创建磁盘备份策略
resource "azurerm_data_protection_backup_policy_disk" "daily_backup_policy" {
  name                            = "daily-disk-backup-policy"
  vault_id                        = azurerm_data_protection_backup_vault.disk_backup_vault.id
  backup_repeating_time_intervals = ["R/2023-01-01T01:00:00+08:00/P1D"] # 每天凌晨1点备份,可按所在时区调整
  default_retention_rule {
    life_cycle {
      duration        = "P30D" # 备份保留30天
      data_store_type = "VaultStore"
    }
  }

  # 可选:配置周/月/年级别的长期保留规则
  # retention_rule {
  #   name     = "monthly-retention"
  #   life_cycle {
  #     duration        = "P1Y"
  #     data_store_type = "VaultStore"
  #   }
  #   criteria {
  #     absolute_criteria = "FirstOfMonth"
  #   }
  # }
}

# 3. 关联托管磁盘与备份策略,创建备份实例
resource "azurerm_data_protection_backup_instance_disk" "mongodb_disk_backup" {
  name             = "${var.env_name}-mongodb-disk-backup"
  vault_id         = azurerm_data_protection_backup_vault.disk_backup_vault.id
  disk_id          = azurerm_managed_disk.mongodb_disk.id
  backup_policy_id = azurerm_data_protection_backup_policy_disk.daily_backup_policy.id
}
配置说明
  • 备份保管库的位置必须和目标托管磁盘的位置保持一致,否则无法绑定
  • backup_repeating_time_intervals遵循ISO 8601重复时间间隔格式,P1D代表每天一次,P7D代表每周一次
  • 保留时长配置同样遵循ISO 8601时长格式,P30D代表30天,P1Y代表1年

内容的提问来源于stack exchange,提问作者Nagy Vilmos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 13:54:03