使用 terraform 获取 Route53 上托管域的 zone_id

9 amazon-web-services amazon-elb amazon-route53 terraform terraform-provider-aws

您好,我正在使用 terraform 创建 Route53 记录,我已经有一个托管域(公共),让我们说一下example.com如何获取其 zone_id 并附加到记录。如何获取现有 Route53 托管区域的 zone_id。我已经编写了一个文件,但它的作用是创建另一个托管区域,example.com而不是获取现有的example.com

resource "aws_route53_zone" "main" {
  name = "example.com"
}

resource "aws_route53_record" "www" {
  zone_id = data.aws_route53_zone.selected.zone_id 
  name    = "dev.${data.aws_route53_zone.selected.name}"
  type    = "A"
  alias {
    name                   = var.alb_dns
    zone_id                = var.zone_id
    evaluate_target_health = false
  }
}
Run Code Online (Sandbox Code Playgroud)

小智 10

private_zone = false你还需要添加

data "aws_route53_zone" "selected" {
  name         = "test.com."
private_zone = false
}

resource "aws_route53_record" "www" {
  zone_id = data.aws_route53_zone.selected.zone_id 
  name    = "dev.${data.aws_route53_zone.selected.name}"
  type    = "A"
  alias {
    name                   = var.alb_dns
    zone_id                = var.zone_id
    evaluate_target_health = false
  }
}
Run Code Online (Sandbox Code Playgroud)


jor*_*anm 5

在 terraform 中,数据源可用于在运行时检索信息。AWS 提供商包含 Route53 区域的数据源。下面是它的用法示例:

data "aws_route53_zone" "selected" {
  name         = "test.com."
}

resource "aws_route53_record" "www" {
  zone_id = data.aws_route53_zone.selected.zone_id 
  name    = "dev.${data.aws_route53_zone.selected.name}"
  type    = "A"
  alias {
    name                   = var.alb_dns
    zone_id                = var.zone_id
    evaluate_target_health = false
  }
}
Run Code Online (Sandbox Code Playgroud)