amazon-web-services - 从度量警报触发 EventBridge 规则:测试事件模式匹配但从未调用规则
问题描述
我正在尝试连接一个 lambda 以在监视 SQS 队列的 ApproximateNumberOfMessagesVisible 属性的警报触发时执行。我从一个超通用的事件模式开始:
{
"source": ["aws.cloudwatch"],
"detail-type": ["CloudWatch Alarm State Change"]
}
将其连接起来以调用一个 lambda,该 lambda 刚刚console.log
对它收到的事件执行 a,然后我向队列发送了一条消息。指标进入警报状态,根据它自己的指标调用规则,然后 lambda 运行。我得到的输出看起来像这样(删除了警报配置,因为我认为它不相关,如果我错了,请告诉我,我会重新编辑它):
{
"version": "0",
"id": "a7c2e5fc-edcc-43ce-0a75-125ba3326d4e",
"detail-type": "CloudWatch Alarm State Change",
"source": "aws.cloudwatch",
"account": "XXXX",
"time": "2021-10-26T14:00:37Z",
"region": "us-east-1",
"resources": [
"arn:aws:cloudwatch:us-east-1:XXXX:alarm:test-alarm"
],
"detail": {
"alarmName": "test-alarm",
"state": {
"value": "ALARM",
"reason": "Threshold Crossed: 1 datapoint [1.0 (26/10/21 13:59:00)] was greater than or equal to the threshold (1.0).",
"reasonData": "{\"version\":\"1.0\",\"queryDate\":\"2021-10-26T14:00:37.095+0000\",\"startDate\":\"2021-10-26T13:59:00.000+0000\",\"unit\":\"Count\",\"statistic\":\"Average\",\"period\":60,\"recentDatapoints\":[1.0],\"threshold\":1.0,\"evaluatedDatapoints\":[{\"timestamp\":\"2021-10-26T13:59:00.000+0000\",\"sampleCount\":1.0,\"value\":1.0}]}",
"timestamp": "2021-10-26T14:00:37.099+0000"
}
}
}
基于此,我编辑了我的原始模式,所以现在是:
{
"source": ["aws.cloudwatch"],
"detail-type": ["CloudWatch Alarm State Change"],
"detail": {
"alarmName": ["test-alarm"],
"state": {
"value": ["ALARM"]
}
}
}
我已经测试了这种模式,aws events test-event-pattern
然后我回来了true
,所以模式似乎是正确的。
然后我清除了队列,等待警报重置,再等几分钟确定,然后向我的队列发送消息。这次指标进入警报状态,但规则的指标显示调用为零,并且 lambda 没有运行。
今天早上我已经将这个结果复制了大约六次,但我看不出问题出在哪里。我在这里做错了什么?
解决方案
推荐阅读
- c# - unity,代码中不同平台显示不同logo
- javascript - flatlist 延伸到屏幕之外
- redis - 如果键包含字符串,则从 Redis 获取完整的 Map
- arrays - AWS Athena unnest with left join 不工作
- python - 将图像从 float32 转换为 uint8 时,蒙版对象消失
- node.js - 从节点服务器运行 Firebase Testlab 测试
- python - 为什么将 6GB 字典文件加载到内存时 RAM 内存 (16GB) 崩溃
- ibm-cloud - IBM Watson Assistant - 使用条件检查 @sys-date
- r - 我可以使用服务器中构建的对象来设置 R Shiny 中的接口输入吗
- java - 带有 log4j2.properties 的哨兵