/* data "external" "nlb-targetgroups" { program = ["bash", "${path.module}/list-nlb-targetgroups.sh"] query = { parameter = var.load-balancer } } */ module "nlb-targetgroups" { source = "../../util/resource-list" resource-type = "nlb-targetgroups" query-input = var.load-balancer } resource "aws_cloudwatch_metric_alarm" "nlb-HealthyHostCount" { for_each = module.nlb-targetgroups.result-set alarm_name = "${var.cw-alarm-prefix}:NLBTG:HealthyHostCount:${split(":", each.value)[5]}" comparison_operator = var.settings.HealthHostCountMin.comparison_operator evaluation_periods = var.settings.HealthHostCountMin.evaluation_periods metric_name = "HealthyHostCount" period = var.settings.HealthHostCountMin.period statistic = var.settings.HealthHostCountMin.statistic threshold = var.settings.HealthHostCountMin.threshold alarm_description = "NLBTG:HealthyHostCount" namespace = "AWS/NetworkELB" insufficient_data_actions = [] actions_enabled = var.actions-enabled alarm_actions = [var.settings.HealthHostCountMin.action] ok_actions = [var.settings.HealthHostCountMin.action] dimensions = { TargetGroup = split(":", each.value)[5] LoadBalancer = "net/${split("/", var.load-balancer)[2]}/${split("/", var.load-balancer)[3]}" } tags = var.default-tags lifecycle { ignore_changes = [tags] } }