# locals ===================================================================== data "aws_availability_zones" "available" { state = "available" } locals { region_abbr = split("-", data.aws_availability_zones.available.zone_ids[0])[0] is_alb = var.load_balancer_type == "application" is_nlb = var.load_balancer_type == "network" lb_name = "${var.name_prefix}-${local.region_abbr}-${var.load_balancer_type == "application" ? "alb" : "nlb"}-${var.name_suffix}" module_tags = { managed-by = "terraform" module-name = "compute:lb-standard" } target_group_names = { for k, v in var.target_groups : k => "${var.name_prefix}-${local.region_abbr}-tg-${v.name_suffix}" } listener_keys = { for k, v in var.listeners : k => "${local.lb_name}-listener-${v.port}" } target_attachments = { for item in flatten([ for tg_key, tg in var.target_groups : [ for target_key, target in tg.targets : { key = "${tg_key}-${target_key}" target_group_key = tg_key target_id = target.id port = target.port } ] ]) : item.key => item } }