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

时间:2017-03-06 13:50:22

标签: amazon-web-services aws-lambda amazon-cloudwatch amazon-cloudwatchlogs amazon-cloudwatch-metrics

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

我想知道有关此问题的任何建议:

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

我正在寻找建议。这个问题从来没有要求完成我的任务。我会感谢任何官方文件,但无论如何,欢迎任何帮助。

1 个答案:

答案 0 :(得分:11)

一些建议:

死信队列:

如果您的错误导致调用失败,您可以使用Lambda Dead Letter Queue将事件发送到SNS主题或SQS队列。如果您将其发送到SNS主题,您可以通过SNS或电子邮件直接subscribe to the topic在任何时候向该主题发布消息时收到通知。

多区域SES:

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

CloudWatch Logs:

如果您的错误没有导致调用失败,则另一个选项是使用CloudWatch Logs metric filter聚合失败并可能对它们发出警报。如果您正在使用NodeJS,您只需通过console.log()console.error()等注销,它就会被写入CWLogs。更多详情here

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

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