AWS Cloudwatch-Lambda超时15分钟没有警报邮件发送

时间:2020-09-21 05:47:41

标签: amazon-web-services aws-lambda amazon-cloudwatch terraform-provider-aws cloudwatch-alarms

我有一个奇怪的问题,我不明白。 我创建了一个cloudwatch警报,该警报应在lambda执行中的错误(包括超时)时通知我。

警报的相关参数如下:

period = "300"
datapoints_to_alarm = "1"
evaluation_periods = "1"
treat_missing_data = "notBreaching"
statistic = "Sum"
threshold = "0"
metric_name = "Errors"
namespace = "AWS/Lambda"
alarm_actions = http:// aws_sns_topic.alarm.arn

当我的Lambda在15分钟(最大Lambda执行时间)后进入超时状态时,不会发送电子邮件给我。 当我的Lambda在2、6、10或14分钟后进入超时状态时,我将按预期收到通知电子邮件。即使在14分30秒时,也会发送邮件。在14:30分钟内,该指标不会切换到警报状态。

有人知道为什么会这样吗? 数据点(错误)正确显示在度量标准中。似乎点(错误)设置为lambda的开始日期。可能是问题所在吗?自lambda开始以来已经经过3个评估期了吗?但是为什么我在14分钟(也超过一个评估期)后超时运行时收到警报邮件。

已经在AWS Forum中问了这个问题,但还没有答案。

有人可以建议我做错了吗?

关于汉尼斯

1 个答案:

答案 0 :(得分:0)

根据有关Lambda function metrics的AWS文档,指标的时间戳反映了何时调用函数。根据执行时间的长短,可能需要几分钟才能发出指标。

例如,如果您的函数有15分钟的超时时间,那么您应该查看过去超过15分钟的时间以获得准确的指标。由于AWS在绝对时间发送警报之前先轮询指标状态,因此您应将警报参数 EvaluationPeriods 设置为大于1 ,然后将 DatapointsToAlarm 设置为和 Period 参数,具体取决于您的Lambda超时以及在发出通知之前要在CloudWatch中采样警报状态的频率。有关这些参数的更多详细信息,请参见here