用于调度具有调度周期的Lambda的CloudWatch警报> 1天

时间:2017-10-16 18:03:10

标签: aws-lambda amazon-cloudwatch amazon-cloudwatch-metrics

我有一个触发每周运行的Lambda,如果它连续运行超过7天,我想要一个CloudWatch警报。

我的想法是Alarm if < 1 invocation for 8 days,但似乎不可能将其设置为超过24小时:

  

警报评估期(数据点数乘以期间)   度量标准)不得超过24小时。

是否有另一种方法可以确保执行超过24小时内触发的Lambdas?

1 个答案:

答案 0 :(得分:3)

最长评估期为24小时。

您可以使用CloudWatch PutMetricData API创建自定义指标来解决这个问题。您可以发布自上次执行lambda函数以来经过的时间,然后在值超过8天时发出警报。

这样做的一种方法是让lambda函数在每次触发时将执行的时间戳存储到DynamoDB。然后,您可以创建一个新函数,该函数将从DynamoDB读取该时间戳,并将其与当前时间之间的差异发布到自定义度量标准(例如,每1小时触发一次lambda触发器)。

一旦您有新的自定义指标流动,您可以创建一个警报,如果一个1小时数据点的值超过8天,则会触发警报(这将解决您的初始问题)。您还可以将 将缺失数据视为 选项设置为 错误 - 违反阈值 (如果第二个lambda函数不会触发)。

您还应该在CloudWatch Events errorsLambda errors上设置闹钟。如果调度或lambda本身出现问题,这将提醒您。但是我上面提到的自定义指标也会在人为错误的情况下提醒您,例如,有人会错误地删除或删除事件或函数。