使用 terraform 更新 ALB 中的现有侦听器

Update the existing listener in ALB using terraform

我正在尝试使用 terraform 中的数据源获取已创建的 ALB,然后更新端口 443 的侦听器,但是当我这样做时,它说侦听器已创建。问题是我正在创建一个新的侦听器无法真正弄清楚如何更新侦听器或覆盖以前的侦听器(ALB 不是以前使用 terraform 创建的)。任何帮助将不胜感激。

data "aws_lb" "alb" {
  arn  = var.alb.lb_arn
  name = var.alb.lb_name
}

data "aws_lb_target_group" "tg" {
  arn  = var.alb.lb_tg_arn
  name = var.alb.lb_tg_name
}

module "alb" {
  source            = "./modules/alb"
  load_balancer_arn = data.aws_lb.alb.arn
  port              = var.alb.port
  protocol          = var.alb.protocol
  certificate_arn   = module.route53-acm.acm_output.arn
  default_action    = var.alb.default_action

}

main.tf

resource "aws_lb_listener" "front_end" {
  load_balancer_arn = var.load_balancer_arn
  port              = var.port
  protocol          = var.protocol
  certificate_arn   = var.certificate_arn

  default_action {
    type = var.default_action.type

    fixed_response {
      content_type = var.default_action.fixed_response.content_type
      message_body = var.default_action.fixed_response.message_body
      status_code  = var.default_action.fixed_response.status_code
    }
  }
}

can't really figure out how to update the listener or overwrite the previous one (ALB is not created using the terraform previously).

你不能。这不是 TF 的工作方式。您的 ALB 必须由 TF 管理才能修改。需要的话可以import发给TF

唯一的其他方法是通过 local exec,您必须使用 AWS CLI 修改现有的 ALB。