gpt4 book ai didi

amazon-web-services - 如何在 terraform 的嵌套 block 内循环

转载 作者:行者123 更新时间:2023-12-04 08:47:42 30 4
gpt4 key购买 nike

我无法理解如何为下面的资源创建循环。我需要基于嵌套在“维度”块中的变量“实例”创建多个资源。根据我阅读一些文档后的理解,我应该使用 for_each 参数,但是我似乎无法弄清楚。

resource "aws_cloudwatch_metric_alarm" "disk_percentage_low" {
alarm_name = "disk_percentage_low"
comparison_operator = "LessThanOrEqualToThreshold"
evaluation_periods = "1"
metric_name = "disk_used_percent"
namespace = "AWS/CWAgent"
period = "60"
statistic = "Average"
threshold = "20"
alarm_description = "This metric monitors ec2 disk utilization"
actions_enabled = "true"
alarm_actions = [aws_sns_topic.disk_alarm.arn]
insufficient_data_actions = []

dynamic = "dimensions" {
for_each = var.instance
content {
instanceid = var.instanceid
instancetype = var.instancetype
imageid = var.imageid
instance = var.instance.value
}
}
}

variable "instance" {
type = list
default = ["E:" , "D:"]
}


我很确定我做错了,但是我已经弄了几天了,并尝试了一些不同的事情,但似乎都没有奏效。任何帮助将不胜感激,谢谢。

最佳答案

您不能在 aws_cloudwatch_metric_alarm 中的单个警报中使用多个维度.您的 dimension只能是:

  dimensions = 
instanceid = var.instanceid
instancetype = var.instancetype
imageid = var.imageid
instance = var.instance[0]
}
或者
  dimensions = 
instanceid = var.instanceid
instancetype = var.instancetype
imageid = var.imageid
instance = var.instance[1]
}
如果您想为 var.instance 中的两个值报警你必须创建*两个警报:
resource "aws_cloudwatch_metric_alarm" "disk_percentage_low" {

for_each = toset(var.instance)

alarm_name = "disk_percentage_low"
comparison_operator = "LessThanOrEqualToThreshold"
evaluation_periods = "1"
metric_name = "disk_used_percent"
namespace = "AWS/CWAgent"
period = "60"
statistic = "Average"
threshold = "20"
alarm_description = "This metric monitors ec2 disk utilization"
actions_enabled = "true"
alarm_actions = [aws_sns_topic.disk_alarm.arn]
insufficient_data_actions = []

dimensions = {
instanceid = var.instanceid
instancetype = var.instancetype
imageid = var.imageid
instance = each.value
}
}

关于amazon-web-services - 如何在 terraform 的嵌套 block 内循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64224727/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com