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

Rob*_*ert 5 amazon-web-services amazon-cloudwatch aws-lambda amazon-cloudwatchlogs amazon-cloudwatch-metrics

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

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

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

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

Ant*_*ace 11

一些建议:

死信队列:

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

多区域SES:

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

CloudWatch日志:

如果您的错误不会导致调用失败,则另一个选项是使用CloudWatch Logs 指标筛选器来聚合故障并可能对它们发出警报.如果您正在使用NodeJS,您只需通过,等等注销console.log(),console.error()它将被写入CWLogs.更多细节在这里.

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


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

  • 是; 对于CloudWatch警报,如果您的指标超过了给定警报周期内的警报阈值,您将收到一封电子邮件,指出警报已被触发.因此,如果您在一个时间段内写入指标10次并且警报因值= 1而跳闸,您将收到单个警报通知.如果将警报周期设置为足够低(对于仅每8小时运行一次的用例,将警报阈值设置得非常低,例如度量值> 1,持续1分钟为5分钟),会在多个时段看到警报. (2认同)