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

问题描述:

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

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

当我lambda函数发生错误如何设置通知?

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

几点建议:

死信队列:

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

多区域SES:

如果你真的设置使用SES直接,SES的客户端可以与提供了明确的区域实例化的 - 只要你的拉姆达的执行角色具有相应的权限,您可以发送电子邮件至不同地区的SES。这里是用于实例化JS SES客户端的documentation

CloudWatch的日志:

如果你的错误不会导致调用失败,另一种选择是使用CloudWatch的日志metric filter聚集在他们的失败和潜在的报警。如果你使用的是NodeJS,你可以简单地通过console.log()console.error()等登出,它将写入CWLogs。更多详情here

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


当你获得经验的错误,并学习如何处理常见的错误,你也可以订阅其他拉姆达从DLQ/CWLogs例子,因为它发生在处理它的SNS话题。

+0

谢谢你的回答。我读了你的答案,并且我搜索了关于度量过滤器的内容,并创建了度量过滤器,但它只是提高了通知的一次。我使用了我的电子邮件,并在发生错误时第一次发送通知电子邮件错误。我想知道为什么不提高电子邮件不止一个。如果你有任何线索? – Robert

+2

是的;对于CloudWatch警报,如果您的指标在给定的警报期内超过警报阈值,您将收到一封电子邮件,指出警报已被触发。因此,如果您在单个时间段内对该指标进行了10次写入,并且警报的值为1,则会收到单个警报通知。如果您将闹钟时间设置得足够低(对于仅每8小时运行一次的用例,将闹钟阈值设置得非常低是没有害处的,例如1分钟5分钟内的度量值> 1),那么您会看到多个时段的警报。 –

+0

嗯,是关于时间和门槛。几分钟后,如果一切进展顺利,则报警返回到先前的状态。谢谢 – Robert