Terraform 地形平面图中的回路?
我有一个Terraform计划,为我的一些AWS ECS服务设置警报,看起来是这样的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 -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
}