質問: お聞きしたいこと --------- AWS Lambdaにてリトライ機能が実行された要因の特定方法に関して 背景 --- AWS LambdaとAmazon CloudWatchEventにて毎日 0時 0分にメールを送信するバッチ処理を実装しているのですが、本日2回バッチ処理が実行されてしまいました。 AWS Lambdaには処理の実行がなんらか失敗してしまった場合に再度実行されるリトライ機能があることがわかったのですが、どんな要因で失敗してしまったのか特定することができていません。 下記に自分で調査した結果をまとめますので、その他調べたほうがいい点がありましたら教えていただけると嬉しいです。 自分で調査したこと ---------- 1 Amazon CloudWatchMetricsにて * 所要時間 * エラー * スロットリング * 呼び出し に関してのデータを他の日と比較して特に目立った差異はなし(むしろ他の日より穏やか) 2 Amazo CloudWatchLogsにて * 実行時間(2846.65ms)→設定値は40000ms * メモリ最大使用量(48MB)→設定値は256MB などを調査するも問題なし
回答: AWS Lambdaの仕様として、 `最低1回実行を保証はするが、複数回実行することもある` ことが判明しました。 複数回実行することも考慮して、プログラムは冪等制を担保する必要があるとのこと 参考: https://dev.classmethod.jp/cloud/aws/lambda-dynamodb/