如何在AWS Route53服务中使用Terraform创建多值SRV DNS记录?

时间:2019-02-08 15:16:55

标签: amazon-web-services terraform amazon-route53 srv

我正在尝试通过Terraform在AWS route53服务中创建多值SRV DNS条目。值应从实例标签中获取。由于这一事实,这仅是一条记录,因此不适用于count的方法。

诀窍是,我有10个实例,但是首先需要通过查找特定标签对其进行过滤。根据结果​​列表,应使用分配给每个实例的Name标签创建SRV记录。

有什么办法解决这个问题吗?

在此先感谢您的提示。

1 个答案:

答案 0 :(得分:0)

我是这样做的:

resource "aws_instance" "myservers" {
    count = 3
    #.... other configuration....
}

resource "aws_route53_record" "srv" {
    zone_id = aws_route53_zone.myzone.zone_id
    name = "_service"
    type = "SRV"
    records = [for server in data.aws_instance.myservers : "0 10 5000 ${server.private_ip}."]
}

Terraform 的 for expression 是解决方案的关键。

关于 AWS Route 53 中的 SRV 记录,每个服务器应该有一行,每行的格式如下:priority weight port target(空格是分隔符)。如上例:0是优先级,10是权重,5000是端口,最后一个是服务器IP(或名称)