Provides a NLB Listener resource.
For information about NLB Listener and how to use it, see What is Listener.
Basic Usage
variable "name" {
default = "tf-example"
}
data "alicloud_resource_manager_resource_groups" "default" {}
data "alicloud_nlb_zones" "default" {}
resource "alicloud_vpc" "default" {
vpc_name = var.name
cidr_block = "10.4.0.0/16"
}
resource "alicloud_vswitch" "default" {
vswitch_name = var.name
cidr_block = "10.4.0.0/24"
vpc_id = alicloud_vpc.default.id
zone_id = data.alicloud_nlb_zones.default.zones.0.id
}
resource "alicloud_vswitch" "default1" {
vswitch_name = var.name
cidr_block = "10.4.1.0/24"
vpc_id = alicloud_vpc.default.id
zone_id = data.alicloud_nlb_zones.default.zones.1.id
}
resource "alicloud_security_group" "default" {
name = var.name
vpc_id = alicloud_vpc.default.id
}
resource "alicloud_nlb_load_balancer" "default" {
load_balancer_name = var.name
resource_group_id = data.alicloud_resource_manager_resource_groups.default.ids.0
load_balancer_type = "Network"
address_type = "Internet"
address_ip_version = "Ipv4"
vpc_id = alicloud_vpc.default.id
tags = {
Created = "TF",
For = "example",
}
zone_mappings {
vswitch_id = alicloud_vswitch.default.id
zone_id = data.alicloud_nlb_zones.default.zones.0.id
}
zone_mappings {
vswitch_id = alicloud_vswitch.default1.id
zone_id = data.alicloud_nlb_zones.default.zones.1.id
}
}
resource "alicloud_nlb_server_group" "default" {
resource_group_id = data.alicloud_resource_manager_resource_groups.default.ids.0
server_group_name = var.name
server_group_type = "Instance"
vpc_id = alicloud_vpc.default.id
scheduler = "Wrr"
protocol = "TCP"
connection_drain_enabled = true
connection_drain_timeout = 60
address_ip_version = "Ipv4"
health_check {
health_check_enabled = true
health_check_type = "TCP"
health_check_connect_port = 0
healthy_threshold = 2
unhealthy_threshold = 2
health_check_connect_timeout = 5
health_check_interval = 10
http_check_method = "GET"
health_check_http_code = ["http_2xx", "http_3xx", "http_4xx"]
}
tags = {
Created = "TF",
For = "example",
}
}
resource "alicloud_nlb_listener" "default" {
listener_protocol = "TCP"
listener_port = "80"
listener_description = var.name
load_balancer_id = alicloud_nlb_load_balancer.default.id
server_group_id = alicloud_nlb_server_group.default.id
idle_timeout = "900"
proxy_protocol_enabled = "true"
cps = "10000"
mss = "0"
}
The following arguments are supported:
alpn_enabled
- (Optional) Whether ALPN is turned on. Value:
alpn_policy
- (Optional) ALPN policy. Value:
ca_certificate_ids
- (Optional) CA certificate list information. Currently, only one CA certificate can be added.The following attributes are exported:
id
- The ID of the resource supplied above.The timeouts
block allows you to specify timeouts for certain actions:
create
- (Defaults to 5 mins) Used when create the Listener.delete
- (Defaults to 5 mins) Used when delete the Listener.update
- (Defaults to 5 mins) Used when update the Listener.NLB Listener can be imported using the id, e.g.
$ terraform import alicloud_nlb_listener.example <id>