условно добавить load_balancer в aws_ecs_service в terraform
Как я могу условно добавить дополнительный load_balancer к ресурсу aws_ecs_service в terraform 0.11.7?
троичные трюки
Я могу использовать троицу для некоторых сценариев - например, здесь я добавляю дополнительный sg, только если он определен
security_groups = ["${aws_security_group.host_type.id}",
"${"" != var.additional_sg ? var.additional_sg : aws_security_group.host_type.id}",
]
Результатом является host_type.id, adda_sg или host_type.id, host_type.id. Он достаточно хорошо работает для определенного класса параметров.
Дополнительная проблема LB
В этом случае у меня есть два класса услуг, некоторые из них должны регистрироваться с несколькими LB, а некоторые нет. Поскольку это новое требование, я не хочу переключаться на новый модуль, так как это приведет к уничтожению / воссозданию, что более затратно для развертывания. В идеале хотелось бы доработать TF на месте.
resource "aws_ecs_service" "default" {
name = "${var.service_name}"
cluster = "${var.ecs_cluster_arn}"
...
load_balancer {
container_port = "${var.container_port}"
container_name = "${var.env_name}-${var.service_name}"
target_group_arn = "${var.lb_target_group_arn}"
}
load_balancer {
container_port = "${var.internal_container_port}"
container_name = "${var.env_name}-${var.service_name}"
target_group_arn = "${var.internal_lb_target_group_arn}"
}
...
}