如何为AWS CloudWatch创建实例停止/重启触发的告警?
能否用CloudWatch告警实现EC2实例停止时触发通知?
没办法直接通过CloudWatch告警实现这个需求。CloudWatch告警的核心逻辑是基于指标阈值或日志模式匹配触发,而EC2实例停止属于AWS资源的状态变更事件,不属于CloudWatch默认监控的指标范畴。
不过你可以通过自定义指标的方式间接实现:
- 写一个Lambda函数,定期调用EC2的
DescribeInstances接口获取目标实例的状态,然后用PutMetricData接口向CloudWatch上报自定义指标(比如命名空间设为EC2InstanceStatus,指标名RunningState,运行中时上报1,停止时上报0)。 - 给这个Lambda配置定时触发(比如每分钟执行一次),确保能及时捕获状态变化。
- 在CloudWatch里针对这个自定义指标创建告警,设置当指标值小于1时触发通知动作(比如通过SNS发送邮件/短信)。
但说实话,这种方式有轮询延迟,还需要额外维护Lambda函数,远不如你已经在使用的**事件订阅(EventBridge,原CloudWatch Events)**高效——EventBridge可以实时监听EC2实例的EC2 Instance State-change Notification事件,状态变为stopped时直接触发通知,不需要额外的轮询逻辑,是处理这类资源状态事件的最优方案。
内容的提问来源于stack exchange,提问作者Akhil K
相关产品推荐
相关产品推荐

