Цикл по карте для создания зоны маршрута 53 и записей - PullRequest
0 голосов
/ 11 июля 2019

У меня есть внешний источник данных, который принимает один или несколько 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 записи в этой зоне.

...