14

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

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

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

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

4

1 回答 1

22

一些建议:

死信队列:

如果您的错误导致调用失败,您可以使用Lambda 死信队列将事件发送到 SNS 主题或 SQS 队列。如果您将其发送到 SNS 主题,您可以通过 SNS 或电子邮件直接订阅该主题,以便在消息发布到该主题时得到通知。

多区域 SES:

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

CloudWatch 日志:

如果您的错误不会导致调用失败,另一种选择是使用 CloudWatch Logs指标过滤器来汇总故障并可能对它们发出警报。console.log()如果您使用的是 NodeJS,您可以通过、等简单地注销console.error(),它将被写入 CWLogs。更多细节在这里

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


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

于 2017-03-06T14:04:08.203 回答