如何获得弹性负载平衡器dns名称?

时间:2016-10-24 13:27:12

标签: terraform

我通过terraform创建了一个弹性的beanstalk环境。我想添加指向负载均衡器的dns的route53记录,但我无法弄清楚如何从EB环境的输出中获取完整的URL。

aws_elastic_beanstalk_environment.xxx.load_balancers属性包含名称,但不包含FQDN。

1 个答案:

答案 0 :(得分:4)

一旦你创建了两个beanstalk资源

resource "aws_elastic_beanstalk_application" "eb_app" {
    name = "eb_app"
    description = "some description"
}

resource "aws_elastic_beanstalk_environment" "eb_env" {
    name = "eb_env"
    application = "${aws_elastic_beanstalk_application.eb_app.name}"
    solution_stack_name = "64bit Amazon Linux 2015.03 v2.0.3 running Go 1.4"
    setting {
        namespace = "aws:ec2:vpc"
        name      = "VPCId"
        value     = "something"
    }

    setting {
        namespace = "aws:ec2:vpc"
        name      = "Subnets"
        value     = "somethingelse"
    }
}

包含的文档here指定您可以使用“cname”输出环境的完全限定DNS名称

要做到这一点,你会写一些像

output "cname" {
  value = "${aws_elastic_beanstalk_environment.eb_env.cname}"
}

然后,在您调用模块的同一目录中,您可以

cname_to_pass_to_route53 = "${module.some_eb_module.cname}"

如果cname不是你需要的url的确切版本,你可以在传入时附加或添加变量名。虽然它确实说完全合格的DNS名称,所以我认为你不需要这样做。

cname_to_pass_to_route53 = "maybeHere://${module.some_eb_module.cname}/orOverHere"