首页 > 解决方案 > 有条件地将 load_balancer 添加到 terraform 中的 aws_ecs_service

问题描述

如何有条件地将额外的 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}"
  }

  ...
}

标签: terraformterraform-provider-awsterraform0.11

解决方案


推荐阅读