Dns Terraform/Route53中的CNAME别名

Dns Terraform/Route53中的CNAME别名,dns,terraform,amazon-route53,Dns,Terraform,Amazon Route53,我有一个现有的dns条目,如 “something.domainmanagedbyroute53.de.”;"3600";“在”;“CNAME”;"";“服务器。某些外部域。de” 并希望将此别名表示为Route53的地形 在 我得到的印象是,我必须使用 resource "aws_elb" "main" { name = "foobar-terraform-elb" availability_zones = ["us-east-1c"]

我有一个现有的dns条目,如 “something.domainmanagedbyroute53.de.”;"3600";“在”;“CNAME”;"";“服务器。某些外部域。de”

并希望将此别名表示为Route53的地形

在 我得到的印象是,我必须使用

resource "aws_elb" "main" {
     name               = "foobar-terraform-elb"
     availability_zones = ["us-east-1c"] 

     listener {
       instance_port     = 80
       instance_protocol = "http"
       lb_port           = 80
       lb_protocol       = "http"
     }
   }

   resource "aws_route53_record" "www" {
     zone_id = "${aws_route53_zone.primary.zone_id}"
     name    = "example.com"
     type    = "A"

     alias {
       name                   = "${aws_elb.main.dns_name}"
       zone_id                = "${aws_elb.main.zone_id}"
       evaluate_target_health = true
     }
   }

然而,我想知道目标在哪里…

路由53别名是一种特殊的机制,它允许您在区域中包含一个记录集,该记录集取自另一个区域中的记录集。但是,它仅在您要别名的记录集也位于Route53区域(仅限于以下区域)时起作用:

  • 正在其中创建记录的同一Route53区域
  • AWS为Amazon S3、Cloudfront等服务提供了路由53区域
请注意,不可能从非Route53区域进行别名,也不可能从您自己帐户中的其他Route53区域进行别名

您共享的示例显示了alias记录与Terraform一起使用的方式:一些其他服务(本例中为弹性负载平衡器)同时公开其DNS名称和DNS名称所属的Route53区域的id,并且您可以在
alias
块中指定这两个名称

该资源的作用是,如果Route53在
example.com
上获得对
a
记录的查询(在本例中),它将在内部查询
aws_elb.main.zone_id
中给出的另一个Route53区域,查找
aws_elb.main.dns_name
中给出的主机名,并返回其中指示的任何IP地址


您在示例中显示的两个主机名似乎都不直接属于提供Route53区域的AWS服务,因此您不能使用别名来满足此用例。您必须改为使用
CNAME
记录。

CNAME
到某个外部域”与“
ALIAS
到内部AWS资源”不同,您首先必须决定需要哪一个。