1

我有一個觸發每週運行的Lambda,並且如果它連續運行超過7天,我想要發出CloudWatch警報。用於調度Lambda的CloudWatch警報,調度週期> 1天

我的想法是Alarm if < 1 invocation for 8 days,但它似乎並不可能將其設置超過24小時:

報警評估期(數據點的次數的 度量的時間)必須是不再超過24小時。

是否有另一種方法可以確保在超過24小時的時間內觸發Lambda的執行?

回答

2

最大評估期爲24小時。

您可以通過使用CloudWatch PutMetricData API創建自定義指標來解決此問題。您可以發佈自上次執行lambda函數以來的時間,然後在該值超過8天時發出警報。

這樣做的一種方法是讓您的lambda函數每次觸發時都將其執行時間戳存儲到DynamoDB中。然後,您可以創建一個新的函數,該函數將從DynamoDB中讀取該時間戳,並將其與當前時間之間的差異發佈到自定義度量標準(例如,每隔1小時有一次該lambda觸發器)。

一旦你有新的自定義指標流動,你可以創建一個警報,如果價值超過8天一個1小時數據點(這將解決您的初始問題)將觸發警報。您還可以設置處理缺失數據選項壞 - 違反門檻(這會提醒你,如果第二拉姆達功能不會觸發)。

您還應該設置報警CloudWatch Events errorsLambda errors。如果調度或lambda本身出現問題,這將提醒您。但是,我上面提到的自定義指標也會在人爲錯誤的情況下提醒您,例如,某人在某處禁用或刪除了該事件或功能。