如何在Terraform中重用资源中的数据?

如何在Terraform中重用资源中的数据?,terraform,Terraform,我想重新使用dns_aaaa_记录中的地址中的字符串,如何重新使用dns_ptr_记录中设置的地址 resource "dns_aaaa_record_set" "app-stage-dns" { count = length(var.datacenter) zone = format("%s.", var.dns_zone) name = "app-stage-${var.datace

我想重新使用dns_aaaa_记录中的地址中的字符串,如何重新使用dns_ptr_记录中设置的地址

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[addresses]>
  ttl   = 300
}
资源“dns\u aaaa\u记录\u集”“应用程序阶段dns”{
计数=长度(变量数据中心)
区域=格式(“%s.”,变量dns\u区域)
name=“app stage-${var.datacenter[count.index]}.mydomain”
地址=[替换(openstack\u compute\u instance\u v2.app stage[count.index]。访问\u ip\u v6,“/\\[\\\]/”,“)]
ttl=300
}
资源“dns\u ptr\u记录”“应用程序阶段dns ptr”{
计数=长度(变量数据中心)
区域=格式(“%s.”,变量dns\u ptr\u区域)
ptr=“app stage-${var.datacenter[count.index]}.mydomain”
姓名=
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
}

您必须小心
名称
<您的
dns\u aaaa\u记录集中的code>地址
是一个列表,
名称
只能是一个字符串,而不能是列表。

谢谢,这很有效!在此之后,我遇到了另一个问题:错误:app-stage.tf行93上的索引无效,在资源“dns_ptr_记录”app-stage dns ptr中:93:name=dns_aaaa_记录集。app-stage dns[count.index]。地址[0]|--------------------count.index是1 | dns_aaaa_record_set.app-stage-dns是包含2个元素的元组此值没有任何索引。@user3297323您可以尝试列出(dns_aaaa_record_set.app stage dns)[count.index]。提供给我的地址[0]:错误:资源“dns_ptr_record”中app-stage.tf行94上的索引无效“app stage dns ptr”:94:name=tolist(dns_aaaa_record_set.app stage dns)[count.index]。地址[0]|-----------------------------------count.index是0 | dns_aaaa_record_set.app-stage-dns是包含2个元素的元组,此值没有任何索引。@user3297323我明白了。我认为它应该是
tolist(dns_aaaa_record_set.app-stage-dns[count.index].addresses)[0]
tolist
右括号位置错误。