如何有条件地将额外的 load_balancer 添加到 terraform 0.11.7 中的 aws_ecs_service 资源?
三元技巧
我可以在某些情况下使用三元组 - 像这样我只在定义时添加一个额外的 sg
security_groups = ["${aws_security_group.host_type.id}",
"${"" != var.additional_sg ? var.additional_sg : aws_security_group.host_type.id}",
]
这会产生 host_type.id、additiona_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}"
}
...
}