Я использовал Terraform для создания VPC, подсетей, экземпляров ECS, маршрутизации и определения задач, которые я могу запускать через консоль AWS. Это дает мне несколько экземпляров моего небольшого веб-приложения, работающего в нескольких контейнерах.
Мне также удалось создать службу с помощью балансировщиков нагрузки приложений в консоли, но я терплю неудачу, когда пытаюсь автоматизировать этот шаг. Я не могу прикрепить контейнер к целевой группе с помощью Terraform.
resource "aws_alb_target_group_attachment" "test" {
target_group_arn = "${aws_alb_target_group.test.arn}"
target_id = "${aws_instance.test.id}"
port = 80
}
target_id (обязательно) Идентификатор цели. Это идентификатор экземпляра для экземпляра или идентификатор контейнера для контейнера ECS.
Я не знаю, как указать идентификатор контейнера для контейнера ECS. В консоли на странице, где вы регистрируете контейнер в целевой группе, есть раскрывающийся список с моим контейнером, идентифицированным как «nancy_template: 0: 5000».
«nancy_template» или «nancy_template: 0: 5000» оба дают мне Ошибка:
Ошибка регистрации целей в целевой группе
Где я могу получить «идентификатор контейнера», в котором говорится, что мне нужно заполнить свойство «target_id»?
Мне удалось это исправить!
Я не думаю, что вам самому нужно прикреплять элементы к целевой группе, что имеет смысл, потому что все это происходит волшебным образом при использовании мастера консоли.
Я удалил все попытки прикрепления любых целей, но определил ALB-приемник:
resource "aws_alb_listener" "web_front_end" {
load_balancer_arn = "${aws_alb.nancy_template_alb.id}"
port = "80"
protocol = "HTTP"
default_action {
target_group_arn = "${aws_alb_target_group.web-targetgroup.id}"
type = "forward"
}
}
и также добавил это в мое служебное определение:
depends_on = [
"aws_alb_listener.web_front_end",
]
...что, возможно, и не нужно, но убедитесь, что связь между моей целевой группой и балансировщиком нагрузки установлена до того, как моя служба всплывет.
.