amazon-cloudwatch - 根据标签过滤 EC2,同时使用 Cloudwatch 事件规则通过 SNS 发送 EC2 实例状态更改通知
问题描述
我正在尝试使用事件模式配置 AWS 事件规则。默认情况下,代码是
{
"source": [
"aws.ec2"
],
"detail-type": [
"EC2 Instance State-change Notification"
]
}
我想根据标签过滤 EC2,可以说我所有的 EC2 都附加了唯一的 AppID ie20567。我想过滤它的原因是因为其他团队在同一个 AWS 账户下拥有 EC2,我只想根据标签“App ID”为属于我的实例配置 SNS
目标我已选择 SNS 主题并使用带值的输入格式化程序
{"instance":"$.detail.instance-id","state":"$.detail.state","time":"$.time","region":"$.region","account":"$.account"}
任何建议我可以在哪里传递标签键值来过滤我的 EC2 实例。
解决方案
我只能代表 Cloudwatch Events(现在称为 EventBridge)。在规则匹配之前,我们不会从 EC2 获取标签信息。示例 EC2 事件显示在https://docs.aws.amazon.com/eventbridge/latest/userguide/event-types.html#ec2-event-type
{
"id":"7bf73129-1428-4cd3-a780-95db273d1602",
"detail-type":"EC2 Instance State-change Notification",
"source":"aws.ec2",
"account":"123456789012",
"time":"2015-11-11T21:29:54Z",
"region":"us-east-1",
"resources":[
"arn:aws:ec2:us-east-1:123456789012:instance/i-abcd1111"
],
"detail":{
"instance-id":"i-abcd1111",
"state":"pending"
}
}
因此,您最好的做法是获取资源的标签并在阅读后过滤掉事件。
推荐阅读
- react-router-dom - 无法返回 React Router v6
- node.js - Node:如何将接收到的图片文件通过Gateway Node传递给Flutter
- rust - 使用 chrono 处理 rust 中的 unix 时间戳
- javascript - 函数获取数组中的最后一条记录而不是选定的记录
- mysql - RDS 无法连接到本地机器
- python - Django AWS S3 存储桶:CKEditor 给出 SignatureDoesNotMatch 错误
- python - 如何解决此错误:ValueError:烧瓶中的盐无效?
- svg - 如何实现对角线双色填充
- javascript - 如何从 javascript 中的用户输入中创建一个新的对象数组
- node.js - 使用 papaparse 步骤写入文件