具有多个lisstner的Terraform负载均衡器

Utp*_*esh 4 amazon-web-services terraform

我将在此处粘贴用于AWS Elastic Loadbalancer的Terraform脚本

    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
}
Run Code Online (Sandbox Code Playgroud)

你们可以帮助我使用terraform变量创建多个侦听器吗?

Ans*_*eek 5

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

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"
  }]
Run Code Online (Sandbox Code Playgroud)

或者,

listener = ["${var.elb_listeners}"]
Run Code Online (Sandbox Code Playgroud)

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