鉴于此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
}
如何修改以创建多个侦听器?
您需要将地图列表传递给侦听器。
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
是地图的列表,如上面的第一个示例中一样。