You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何借助CloudWatch告警与SNS将Lambda错误信息推送至邮箱?

实现Lambda错误信息邮件接收+CloudWatch告警启停控制方案

一、调整SNS主题的订阅配置

你当前的流程里,SNS只触发了去Netcool的Lambda,没配置邮件订阅。要同时实现邮件接收和Netcool推送,得给SNS主题加两种订阅:

  • 邮件订阅:创建SNS主题(比如lambda-error-alerts)后,选Email协议,填收件邮箱,完成订阅确认。
  • Lambda订阅:同样在这个主题下,选AWS Lambda协议,关联你现有的那个调用Netcool API的Lambda函数。

这样CloudWatch告警触发后,SNS会同时给邮件和Lambda发消息,互不影响。

二、让CloudWatch告警携带错误日志到邮件

要让邮件里有具体的错误信息,得在CloudWatch告警配置里开启日志片段包含:

  • 配置告警时,选Lambda的Errors指标(命名空间AWS/Lambda,维度选你的目标Lambda),设置触发阈值(比如连续1次错误就告警)。
  • 在告警的通知设置里,打开包含日志片段选项,指定你的Lambda对应的CloudWatch日志组,设置日志时间范围(比如告警触发前5分钟)。这样告警邮件里会直接附上错误发生时的具体日志内容。
  • 要是用CLI或者CloudFormation配置,记得在AlarmActions里指定SNS主题ARN,同时配置好日志片段相关参数。

三、优化中间Lambda的逻辑(可选)

如果你的中间Lambda需要处理错误信息再推Netcool,直接解析SNS事件里的Message字段就行——SNS发的告警消息里已经包含了错误指标和日志片段,Lambda可以直接拿这些内容调用Netcool API,完全不影响邮件的内容。

四、启停告警的操作方式

CloudWatch告警本身就支持一键启停,不用额外开发:

  • 控制台操作:找到对应的告警,点状态下拉框选启用或禁用。
  • CLI操作:用aws cloudwatch enable-alarms --alarm-names "你的告警名称"启用,disable-alarms命令禁用,还能批量操作多个告警。

排查小技巧

  • 邮件没收到日志:检查告警是否开了日志片段包含,确认Lambda日志组的权限是否允许CloudWatch读取(默认是允许的)。
  • Lambda没触发:检查Lambda执行角色有没有SNS:ReceiveMessage权限,以及SNS主题的访问策略是否允许调用Lambda。

内容的提问来源于stack exchange,提问作者Bhasker Jha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 06:40:29