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

Terraform中使用oci_dns_rrset创建多rdata DNS记录失败求助

解决Terraform OCI DNS RRSet多RData生成问题

要生成包含多个RData的DNS记录,你需要用Terraform的**动态块(dynamic block)**来遍历records数组,自动生成多个items嵌套块,而非手动写死单个条目。

修改后的oci_dns_rrset资源代码

resource "oci_dns_rrset" "records" {
  for_each        = var.records
  zone_name_or_id = oci_dns_zone.zone.name
  domain          = "${each.key}${var.zone}"
  rtype           = try(each.value.type, "A")
  ttl             = 60 # TTL可统一设置,也可放到动态块中单独定义

  # 用动态块遍历records数组生成多个items条目
  dynamic "items" {
    for_each = each.value.records
    iterator = rdata # 自定义迭代器名称,避免与外层each变量混淆

    content {
      domain = "${each.key}${var.zone}"
      rdata  = rdata.value # 取当前迭代的RData值
      rtype  = try(each.value.type, "A")
    }
  }
}

关键说明

  • dynamic "items":告知Terraform需动态生成items类型的嵌套块
  • for_each = each.value.records:指定遍历当前记录下的records数组
  • iterator = rdata:自定义迭代器变量名,避免和外层var.records的each冲突,逻辑更清晰
  • 每个动态块的content中,直接通过rdata.value获取当前循环的IP地址,自动为每个IP生成一条items条目

效果验证

以你定义的*.testRecord.记录为例,修改后会自动生成两个items块,分别对应1.2.3.4和1.2.3.7,最终在OCI DNS中生成一条包含两个A记录值的RRSet。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 16:12:51