AI作成・独立検証済(有資格者監修なし)DVA-C02 対応
エラーハンドリング(同期呼び出しの再試行責任)難易度 標準無料

API Gatewayのプロキシ統合経由で同期呼び出しされるLambda関数が、下流のデータベースへの一時的な接続エラーにより例外をスローした。この場合の再試行に関する正しい理解を選べ。(単一選択)

  1. ALambda自体は同期呼び出しの失敗を自動的に再試行しない。エラーは即座に呼び出し元へ返され、再試行の実装は呼び出し元(クライアントやAPI Gateway側)の責任である
  2. B同期呼び出しであっても非同期呼び出しと同様に、Lambdaが内部で自動的に最大2回まで再試行してから呼び出し元へ結果を返す
  3. C同期呼び出しのエラーは自動的にDLQへ送信され、DLQに設定したLambda関数が再試行のトリガーとなる
  4. D同期呼び出しのエラーはKinesisのストリームベース呼び出しと同様に、成功するかレコードの経過時間上限に達するまで自動的に再試行され続ける
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

同期呼び出し(API Gateway、ALB、SDKのInvokeInvocationType=RequestResponse)等)では、 Lambda自体は失敗した呼び出しを自動的に再試行しない。エラーは即座に呼び出し元へ返される。

  • 再試行が必要な場合は、呼び出し元(クライアントアプリケーション、SDKのリトライ設定、API Gateway側の設計)が責任を持って実装する必要がある。
  • これは非同期呼び出し(既定で最大2回の自動再試行)ストリームベースのポーリング呼び出し(Kinesis/DynamoDB Streams、 エラー時にバッチ全体を再試行し続ける)とは明確に異なる挙動である。
  • 設計上は、下流の一時的なエラーに備えて呼び出し元側で指数バックオフ付きの再試行やサーキットブレーカーを実装するのが定石。
各誤答が違う理由
  • B自動再試行は非同期呼び出しの挙動。同期呼び出しではLambdaは再試行せず、エラーを即座に呼び出し元へ返す。
  • CDLQは非同期呼び出しの失敗イベントを保存する仕組みであり、同期呼び出しには適用されない。
  • Dそれはポーリングベース(ストリーム)呼び出しの挙動。同期呼び出しにはそのような自動リトライループは存在しない。
ひっかけ: 「非同期呼び出しと同様にLambdaが自動で2回再試行する(B)」は誤り。再試行の自動化は呼び出しタイプによって異なるのが本問の核心。 同期呼び出しでは再試行の責任は呼び出し元側にある。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
この分野をもっと解いて、得点源に
Lambda開発 を含む問題を分野別に演習できます。
演習する →