#terraform
#terraform
Вопрос:
Я создал среду elastic beanstalk с помощью terraform. Я хотел бы добавить запись route53, указывающую на dns балансировщика нагрузки, но я не могу понять, как получить полный URL-адрес из выходных данных среды EB.
Свойство aws_elastic_beanstalk_environment.xxx.load_balancers содержит имя, но не полное доменное имя.
Комментарии:
1. На самом деле, возможно, мне следует указывать на cname, который находится в выходных данных среды
Ответ №1:
Как только вы создадите оба ресурса 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"
}
}
В документации, включенной сюда, указано, что вы можете использовать ‘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"
Комментарии:
1. Это более подробная версия моего комментария, но я дам вам баллы за усилия!