Lambda 関数に冪等にする

Lambda 関数の同時実行数を1にしても冪等性の担保から逃れることは出来ない | by noid11 | Medium

・冪等性はお客様のコードで確保する必要がある

  • AWS Lambda で保証しているのは最低1回実行することであり1回しか実行しないことではない

  • 同一イベントで同一 Lambda ファンクションが2回起動されることがまれに発生する

  • DynamoDB を利用するなどして冪等性を担保する実装を行うこと

  1. 入力イベントの固有属性の値を抽出します。(たとえば、トランザクションまたは購入 ID など。)

  2. 属性値がコントロールデータベース (Amazon DynamoDB テーブルなど) に存在するかどうかを確認します。
    注: アーキテクチャに AWS サービスを追加すると、追加費用が発生する場合があります。詳細については、「Amazon DynamoDB 料金」および「AWS 料金」をご参照ください。

  3. 一意の値が存在する場合 (重複イベントを示す)、実行を正常に終了します (つまりエラーをスローすることがない)。一意の値が存在しない場合は、通常の実行を継続します。

  4. 関数の動作が正常に終了したら、コントロールデータベースにレコードが含まれます。

  5. 実行を終了します。