Amazon EC2 会在实例状态变更时向 Amazon EventBridge 发送通知事件。当实例从 pending 进入 running,或从 stopping 进入 stopped 时,EventBridge 的 detail 字段中会包含 instance-id 和 state 信息。
示例数据中,state 字段的值为 pending 表示实例正在启动过程中;变为 running 则表示实例已运行。同样,stopping 表示实例正在停止,stopped 表示实例已停止。
要设置 CloudWatch Alarm 监控这些状态变化,需先通过 EventBridge 规则将 EC2 事件路由到目标(如 Lambda 函数或 SNS),再结合 CloudWatch Logs Insights 查询日志中的 state 字段值。当检测到 state 从 pending 变为 running,或从 stopping 变为 stopped 时,可触发相应告警。
注意:状态变更是瞬时事件,CloudWatch Alarm 通常基于指标而非直接解析 EventBridge 事件内容。若需基于事件驱动报警,建议将事件写入 CloudWatch Logs,并通过 Metric Filter 提取 state 变化并生成自定义指标,再对指标设置 Alarm。
示例中 time 字段为 UTC 时间,region 和 account 用于标识资源归属。resources 数组包含实例 ARN,detail 中的 instance-id 与 resources 中的 ARN 可相互验证。