amazon-web-services - 服务器列表的 Cloudwatch 警报
问题描述
我正在尝试在服务器列表中设置一些警报,我在本地定义了我的服务器,如下所示:
locals {
my_list = [
"server1",
"server2"
]
}
然后我将我的 cloudwatch 警报定义为:(这是一个这样的警报)
resource "aws_cloudwatch_metric_alarm" "ec2-high-cpu-warning" {
for_each = toset(local.my_list)
alarm_name = "ec2-high-cpu-warning-for-${each.key}"
comparison_operator = "GreaterThanThreshold"
evaluation_periods = "1"
metric_name = "CPUUtilization"
namespace = "AWS/EC2"
dimensions = {
instanceid = values(data.aws_instances.my_instances)[*].ids
instancename = local.my_list
}
period = "60"
statistic = "Average"
threshold = "11"
alarm_description = "This warning is for high cpu utilization for ${each.key}"
actions_enabled = true
alarm_actions = [data.aws_sns_topic.my_sns.arn]
insufficient_data_actions = []
treat_missing_data = "notBreaching"
}
我还将数据源定义为:
data "aws_instances" "my_instances" {
for_each = toset(local.my_list)
instance_tags = {
Name = each.key
}
}
现在,当我运行 terraform plan 时,出现错误:
| data.aws_instances.my_instances is object with 2 attributes
属性“dimensions”的值不合适:元素“instanceid”:需要字符串。
解决方案
在你的for_each
你应该使用data.aws_instance.my_instances
:
resource "aws_cloudwatch_metric_alarm" "ec2-high-cpu-warning" {
for_each = data.aws_instance.my_instances
alarm_name = "ec2-high-cpu-warning-for-${each.key}"
comparison_operator = "GreaterThanThreshold"
evaluation_periods = "1"
metric_name = "CPUUtilization"
namespace = "AWS/EC2"
dimensions = {
instanceid = each.value.id
instancename = each.key
}
period = "60"
statistic = "Average"
threshold = "11"
alarm_description = "This warning is for high cpu utilization for ${each.key}"
actions_enabled = true
alarm_actions = [data.aws_sns_topic.my_sns.arn]
insufficient_data_actions = []
treat_missing_data = "notBreaching"
}
以上将为您的两个实例(每个实例一个警报)创建两个警报,其中instancename
将是server1
或``server2`。
推荐阅读
- symfony - 返回按钮提交表单
- angular - 在 Angular 的新选项卡中打开 pdf 文件
- javascript - 使用 CSS 模块定位 next.js 中的纯元素
- pandas - 如何将列值转换为列名
- javascript - 提示用户输入不含特殊字符的字符串 [@ . , !] Javascript
- c++ - 在程序启动时自动执行代码而不违反 ODR
- reactjs - React react-redux redux-persist 性能问题
- java - 将动态 JSON 数据映射到 Java 中的 pojo 类?
- php - 无法使用纯 PHP 和 REST API 从 Firestore 获取数据
- reactjs - Gatsby 无法在模板中解析 GraphQL