【问题标题】:How to create multi-value SRV DNS record with terraform in AWS Route53 service?如何在 AWS Route53 服务中使用 terraform 创建多值 SRV DNS 记录?
【发布时间】:2019-02-08 15:16:54
【问题描述】:

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

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

知道如何解决这个问题吗?

提前感谢您的任何提示。

【问题讨论】:

  • 我会使用外部数据将数据收集到 JSON 中,然后通过 terraform 将其转换为地图,并使用 count 循环遍历它并创建 DNS 记录。
  • 你能分享你到目前为止的代码吗?您是与实例同时创建 SRV 记录还是单独创建?您是否也考虑过使用 Route53 服务发现而不是尝试自己实现?

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


【解决方案1】:

我是这样做的:

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 记录,每个服务器应该有一行,并且每一行的格式如下:优先权重端口目标(空格是分隔符)。对于上面的例子:0是优先级,10是权重,5000是端口,最后一个是服务器IP(或名称)

【讨论】:

    猜你喜欢
    • 2021-10-21
    • 2011-04-15
    • 1970-01-01
    • 2018-08-01
    • 2018-08-24
    • 2018-11-16
    • 2018-01-08
    • 2010-11-10
    • 1970-01-01
    相关资源
    最近更新 更多