非同期イベントソースが Lambda 関数をトリガーするのに時間がかかるのはなぜですか?

所要時間1分
0

非同期イベントソースが AWS Lambda 関数をトリガーするまでに遅延が発生します。

簡単な説明

Lambda 関数で非同期呼び出しを使用すると、イベントのトリガーに予想以上に時間がかかることに気付くかもしれません。また、イベントがデッドレターキュー (DLQ) に送信され、Lambda サービスに処理されずに処理される場合もあります。

Lambda 関数を非同期で呼び出す AWS サービスは複数あります:

解像度

呼び出し遅延

一般的には、リクエストを処理する非同期方式が原因で遅延が発生する可能性があります。

  • リクエストを行うと、内部の非同期キューに送信されます。Lambda は内部の非同期キューからリクエストを受け取り、そのリクエストを Lambda 関数に送信してさらに処理します。Lambda 関数でエラーが発生した場合、関数のAmazon CloudWatch ログに遅延が表示されることがあります。リクエストが関数レベルで制限されている場合も、遅延が発生する可能性があります。
  • 機能レベルでエラーやスロットルデータポイントがない場合は、地域レベルのメトリックでエラーとスロットルを確認してください。他の関数が非同期で呼び出された後にエラーが発生した場合、これらの関数は大幅に遅延します。そのため、関数にエラーやスロットルのデータポイントがない場合でも、関数への呼び出しやリクエストが遅延する可能性があります。
  • Lambda 関数と同じリージョンにある他の関数が非同期に何度も呼び出すと、内部キューが混雑します。この問題を解決するには、地域レベルの同時実行数を増やしてください。
  • 内部キューのバックログを確認するには、Lambda 関数で AWS X-Rayを有効にします。AWS X-Ray がオンになっている場合は、滞留時間プロパティを使用できます。このプロパティは、Lambda サービスがリクエストを Lambda 関数に送信して処理する前に、リクエストが内部キューで費やされた合計時間を示します。
  • 関数をキューバックログから保護するために、関数ごとの同時実行または予約された同時実行を設定します。

重複した呼び出し

Lambda は分散型サービスであり、関数が少なくとも 1 回呼び出されるようにします。ただし、この関数が複数回呼び出されると、重複が発生する可能性があります。CloudWatch ログをチェックして、これらの重複した呼び出しがないかどうかを確認してください。

  • 関数が重複したリクエストを処理できることを確認するのがベストプラクティスです。詳細については、「Lambda 関数を等価にするにはどうすればよいですか?」を参照してください。
  • Lambda の CloudWatch ログを確認し、関数のリクエスト ID を確認します。ログから、重複するイベントのリクエストIDが同じか異なるかを確認できます。リクエスト ID は、Lambda の非同期呼び出しのライフサイクルを通じて同じままです。リクエストIDが同じ場合は、呼び出しを再試行して複製する原因となったエラーデータポイントが関数に含まれていないかどうかを確認します。
  • リクエストIDが異なる場合、クライアント側で重複した呼び出しが発生しています。

呼び出しが見つからない

CloudWatch のログを確認して、呼び出しが見つからない場合と遅延している場合を区別してください。遅延呼び出しについては、この記事の「遅延呼び出し」セクションで説明した手順に従ってください。

呼び出しが見つからないのは、リクエストを処理するのに十分な同時実行性がない場合です。関数が同時実行を予約していて、その関数でエラーが発生した場合、要求は非同期キューに長時間留まります。その後、リクエストは Lambda によって処理されずに削除されます。AsyncEventsDroppedメトリクスを確認して、関数を実行せずに削除されたイベントの数を確認します。

DLQ を設定した場合は、リクエストの DLQ または障害発生時の宛先を確認してください。内部キューのイベントが 6 時間後に期限切れになった場合、リクエストは Lambda で処理されずに DLQ に送信できます。

非同期呼び出しのメトリック

非同期呼び出しのその他のメトリックを確認する方法の詳細については、「AWS Lambda の新しい非同期呼び出しメトリックスの紹介」を参照してください。

関連情報

非同期呼び出し

AWS Lambda Powertoolsによる Lambda 関数の同等性の処理

Lambda 関数メトリクスの操作

AWS公式
AWS公式更新しました 1年前
コメントはありません