代码之家  ›  专栏  ›  技术社区  ›  alexroussos

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

  •  6
  • alexroussos  · 技术社区  · 7 年前

    我有一个每周运行的Lambda,如果连续7天没有运行,我希望有一个CloudWatch闹钟。

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

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

    是否有其他方法可以确保在超过24小时的时间内触发lambda的执行?

    1 回复  |  直到 7 年前
        1
  •  8
  •   Dejan Peretin    7 年前

    最长评估期为24小时。

    您可以通过使用创建自定义指标来解决这个问题 CloudWatch PutMetricData API

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

    一旦您有了新的自定义指标,您可以创建一个警报,如果一个1h数据点的值超过8天,则会触发警报(这将解决您的初始问题)。您还可以设置 选择 坏-违反阈值 (如果第二个lambda函数未触发,这将提醒您)。

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