具有多个侦听器的Terraform负载均衡器

问题描述 投票:5回答:1

鉴于此Terraform脚本用于创建AWS Elastic Load Balancer:

resource "aws_elb" "elb" {
  name = "${var.elb_name}"
  subnets = ["${var.subnet_ids}"]
  internal = "${var.elb_is_internal}"
  security_groups = ["${var.elb_security_group}"]

  listener {
    instance_port = "${var.backend_port}"
    instance_protocol = "${var.backend_protocol}"
    lb_port = 80
    lb_protocol = "http"
  }

  health_check {
    healthy_threshold = 2
    unhealthy_threshold = 2
    timeout = 3
    target = "${var.health_check_target}"
    interval = 30
  }

  cross_zone_load_balancing = true
}

如何修改以创建多个侦听器?

amazon-web-services terraform
1个回答
6
投票

您需要将地图列表传递给侦听器。

listener = [{
    instance_port = "${var.backend_port}"
    instance_protocol = "${var.backend_protocol}"
    lb_port = 80
    lb_protocol = "http"
  },{
    instance_port = "${var.backend2_port}"
    instance_protocol = "${var.backend2_protocol}"
    lb_port = 8080
    lb_protocol = "http"
  }]

或者,

listener = ["${var.elb_listeners}"]

其中var.elb_listeners是地图的列表,如上面的第一个示例中一样。

© www.soinside.com 2019 - 2024. All rights reserved.