You need to enable JavaScript to run this app. 如何在Terraform中复用资源数据完成DNS资源配置关联?
优惠活动
大模型
产品
解决方案
定价
更多

如何在Terraform中复用资源数据完成DNS资源配置关联?

字段复用实现方案

替换规则

由于两个资源的count均绑定length(var.datacenter),数组索引完全一一对应,可直接按相同count.index引用对应AAAA记录集的地址值。
因为addresses是列表类型,当前配置下每个记录集仅存储1个IPv6字符串,需要通过列表索引取出实际值,否则会触发类型不匹配报错。
最终name字段的正确取值为:
dns_aaaa_record_set.app-stage-dns[count.index].addresses[0]

替换后完整Terraform配置

resource "dns_aaaa_record_set" "app-stage-dns" {
  count     = length(var.datacenter)
  zone      = format("%s.", var.dns_zone)
  name      = "app-stage-${var.datacenter[count.index]}.mydomain"
  addresses = [replace(openstack_compute_instance_v2.app-stage[count.index].access_ip_v6, "/\\[|\\]/", "")]
  ttl       = 300
}

resource "dns_ptr_record" "app-stage-dns-ptr" {
  count = length(var.datacenter)
  zone  = format("%s.", var.dns_ptr_zone)
  ptr   = "app-stage-${var.datacenter[count.index]}.mydomain"
  name  = dns_aaaa_record_set.app-stage-dns[count.index].addresses[0]
  ttl   = 300
}

补充说明

  • 若后续调整AAAA记录配置,单个记录集需要绑定多个IPv6地址,需要调整当前取addresses[0]的逻辑,比如嵌套循环生成对应数量的PTR记录匹配所有地址。
  • 若DNS服务提供商要求PTR记录的name为反向格式化的IP字符串,可在当前引用值基础上追加IP反转的转换逻辑即可,不需要修改核心引用关系。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.30 01:36:01