terraform-modules/terraform-alicloud-landing-zone-alb/main.tf (75 lines of code) (raw):
resource "alicloud_alb_load_balancer" "default" {
resource_group_id = var.resource_group_id
vpc_id = var.vpc_id
load_balancer_name = var.alb_instance_deploy_config.load_balancer_name
address_type = var.alb_instance_spec.address_type
address_allocated_mode = var.alb_instance_spec.address_allocated_mode
load_balancer_edition = var.alb_instance_spec.load_balancer_edition
load_balancer_billing_config {
pay_type = "PayAsYouGo"
}
zone_mappings {
vswitch_id = var.alb_instance_deploy_config.vswitch_1_id
zone_id = var.alb_instance_deploy_config.zone_1_id
}
zone_mappings {
vswitch_id = var.alb_instance_deploy_config.vswitch_2_id
zone_id = var.alb_instance_deploy_config.zone_2_id
}
modification_protection_config {
status = "NonProtection"
}
tags = var.alb_instance_spec.tags
}
resource "alicloud_alb_server_group" "default" {
vpc_id = var.vpc_id
resource_group_id = var.resource_group_id
protocol = var.server_group_config.protocol
server_group_name = var.server_group_config.server_group_name
tags = var.server_group_config.tags
health_check_config {
health_check_connect_port = var.server_group_config.health_check_connect_port
health_check_enabled = var.server_group_config.health_check_enabled
health_check_host = "$SERVER_IP"
health_check_codes = var.server_group_config.health_check_codes
health_check_http_version = var.server_group_config.health_check_http_version
health_check_interval = var.server_group_config.health_check_interval
health_check_method = var.server_group_config.health_check_method
health_check_path = var.server_group_config.health_check_path
health_check_protocol = var.server_group_config.health_check_protocol
health_check_timeout = var.server_group_config.health_check_timeout
healthy_threshold = var.server_group_config.healthy_threshold
unhealthy_threshold = var.server_group_config.unhealthy_threshold
}
sticky_session_config {
sticky_session_enabled = var.server_group_config.sticky_session_enabled
cookie = var.server_group_config.cookie
cookie_timeout = var.server_group_config.cookie_timeout
sticky_session_type = var.server_group_config.sticky_session_type
}
dynamic "servers" {
for_each = var.server_group_backend_servers
content {
server_id = servers.value.server_id
server_type = servers.value.server_type
server_ip = servers.value.server_ip
description = servers.value.description
weight = servers.value.weight
port = servers.value.port
}
}
}
resource "alicloud_alb_listener" "default" {
load_balancer_id = alicloud_alb_load_balancer.default.id
listener_protocol = var.alb_listener_config.listener_protocol
listener_port = var.alb_listener_config.listener_port
listener_description = var.alb_listener_config.listener_description
default_actions {
type = "ForwardGroup"
forward_group_config {
server_group_tuples {
server_group_id = alicloud_alb_server_group.default.id
}
}
}
}