Terraform 地形平面图中的回路?

Terraform 地形平面图中的回路?,terraform,terraform-provider-aws,Terraform,Terraform Provider Aws,我有一个Terraform计划,为我的一些AWS ECS服务设置警报,看起来是这样的 $ terraform -v Terraform v0.14.6 如您所见,所有模块的设置都类似,只是名称、alarm\u name和service\u name参数不同。有没有一种方法可以设置一个for循环,该循环将在地图上循环以设置计划的模块?来自Mark B(谢谢!)的评论,这很有效 module "ecs_high_cpu_service_aaa_alarm" { source

我有一个Terraform计划,为我的一些AWS ECS服务设置警报,看起来是这样的

$ terraform -v
Terraform v0.14.6
如您所见,所有模块的设置都类似,只是名称、
alarm\u name
service\u name
参数不同。有没有一种方法可以设置一个for循环,该循环将在地图上循环以设置计划的模块?

来自Mark B(谢谢!)的评论,这很有效

module "ecs_high_cpu_service_aaa_alarm" {
  source       = "../modules/cw_alarm"
  alarm_name   = "ecs-high-cpu-service-aaa-alarm"
  service_name = "service-aaa"
  // Other parameters
}

module "ecs_high_cpu_service_bbb_alarm" {
  source       = "../modules/cw_alarm"
  alarm_name   = "ecs-high-cpu-service-bbb-alarm"
  service_name = "service-bbb"
  // Other parameters
}

module "ecs_high_cpu_service_123_alarm" {
  source       = "../modules/cw_alarm"
  alarm_name   = "ecs-high-cpu-service-123-alarm"
  service_name = "service-123"
  // Other parameters
}

// More alarms with similar setup as above

谢谢@MarkB,我在下面的回答中相信了你。
variables.tf
------------
variable "service_map" {
  type        = map
  default     = {
    service-aaa = "ecs-high-cpu-service-aaa-alarm"
    service-bbb = "ecs-high-cpu-service-bbb-alarm"
    service-123 = "ecs-high-cpu-service-123-alarm"
  }
  description = "Service map; key = service name, value = alarm name"
}

main.tf
-------
module "alarms" {
  for_each      = var.service_map
  source        = "../modules/cw_alarm"
  service_name  = each.key
  alarm_name    = each.value
  // Other parameters
}