我有一个外部数据源,该数据源接受一个或多个子网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条记录。