当 AWS Lambda 函数出错时发送通知警报

send notification alert when AWS Lambda function has an error

我的基础设施中有一个 AWS Lambda 函数 运行 某个进程。 Lambda 使用 CloudWatch 规则每 8 小时触发一次。如果 Lambda 进程发生任何错误,我会尝试发出通知。我尝试使用 SES,但该服务在该地区不可用。

我想知道关于这个问题的任何建议:

如何在我的 Lambda 函数发生错误时设置通知?

我正在寻找建议。这个问题从来没有问过我的任务。我将不胜感激任何官方文档,但无论哪种方式,我们都欢迎任何帮助。

一些建议:

死信队列:

如果您的错误导致调用失败,您可以使用 Lambda Dead Letter Queue to send the event to an SNS topic or an SQS queue. If you send it to an SNS topic, you can directly subscribe to the topic 通过 SNS 或电子邮件在向该主题发布消息时随时收到通知。

多区域 SES:

如果您真的打算直接使用 SES,可以使用提供的显式区域来实例化 SES 客户端——只要您的 lambda 执行角色具有适当的权限,您就可以从不同的区域向 SES 发送电子邮件.这里是 documentation 用于实例化 JS SES 客户端。

CloudWatch 日志:

如果您的错误不会导致调用失败,另一种选择是使用 CloudWatch Logs metric filter to aggregate failures and potentially alarm on them. If you're using NodeJS, you can simply log out via console.log(), console.error(), etc. and it will be written out to CWLogs. More details here

您可以将 SNS 主题订阅到 CloudWatch 警报,并以与 DLQ 相同的方式通知自己。


随着您获得错误经验并了解如何处理常见错误,您还可以从 DLQ/CWLogs 示例中订阅另一个 lambda 到 SNS 主题,以便在它发生时进行处理。