遍历地图以创建route53区域和记录

时间:2019-07-11 04:03:15

标签: terraform terraform-provider-aws

我有一个外部数据源,该数据源接受一个或多个子网CIDR,并返回json数据作为反向DNS区域名称和与该区域相关联的ip地址的映射。

数据如下:

{"0.0.10.in-addr.arpa" = ["16,10.0.0.16,0", "17,10.0.0.17,1",]}

我可以遍历区域名称并创建route53区域,但是我对如何遍历每个区域的地图关键字然后创建route53记录感到困惑。

data "external" "subnet_reverse_zone" {
  program = [
    "bash",
    "${path.module}/subnet-reverse-zone.sh"]
  query = {
    # Example input as comma delimited string
    #subnet = "10.0.0.16/28,10.0.0.32/28,10.0.0.48/28"
    subnet = join(
      ",",
      [
        for netnum in range(1, length(var.availability_zones) + 1) :
          cidrsubnet(aws_vpc.main.cidr_block, var.subnet_newbits, netnum)
      ]
    )
  }
}

locals {
  reverse_zone_data = jsondecode(data.external.subnet_reverse_zone.result.zone)
}

resource "aws_route53_zone" "reverse_zone" {
  count = length(keys(local.reverse_zone_data))
  name    = keys(local.reverse_zone_data)[count.index]
  vpc {
    vpc_id = aws_vpc.main.id
  }
}

resource "aws_route53_record" "reverse_zone_record" {
  count = ?
  name       = ?
  type       = "PTR"
  records    = [?]
  zone_id    = aws_route53_zone.reverse_zone.*.id
  ttl        = 300
  depends_on = [aws_route53_zone.reverse_zone]
}


基于我的数据,我应该能够创建1个route53区域和该区域中的2条记录。

0 个答案:

没有答案