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

S3のイベント通知をトリガーに非同期起動されるLambda関数が、一時的な下流サービスの障害により実行時エラーを返した。DLQ・on-failure destinationはまだ設定していない。このときのLambdaの挙動として最も適切なものを選べ。(単一選択)

  1. ALambdaは自動的に最大2回まで再試行する(初回呼び出しと合わせ最大3回の試行)。すべて失敗しDLQ/on-failure destinationが未設定の場合、失敗イベントは自動保存されない
  2. B非同期呼び出しであっても、Lambdaは同期呼び出しと同様に自動的な再試行を一切行わない。呼び出し元(S3)が独自に再試行を実装する必要がある
  3. Cエラーが発生すると即座に無限に再試行を続け、成功するかイベントの経過時間の上限(既定6時間)に達するまで止まらない
  4. Dエラーが発生すると自動的に関数のコンカレンシー設定が0に変更され、それ以上の呼び出しがすべて拒否されるようになる
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

非同期呼び出し(S3、SNS、EventBridge等がトリガーとなるケース)でハンドラーがエラーを返す(または関数が異常終了する)と、 Lambdaは自動的に最大2回まで再試行する(初回呼び出し+既定で2回のリトライ=合計最大3回の試行)。

  • 再試行の間には遅延(バックオフ)が設けられる。再試行回数はMaximumRetryAttempts(0〜2)で減らすことができ、 MaximumEventAgeInSecondsでイベントが再試行対象となる最大経過時間を制御できる。
  • すべての試行が失敗し、かつDLQやon-failure destinationが未設定の場合、そのイベントは(設定によっては)破棄され、 自動的な失敗イベントの保存は行われない。運用上はDLQまたはDestinationsの設定が強く推奨される。
  • これに対し、API Gateway経由などの同期呼び出しではLambda自身は自動リトライを行わない点と対比して押さえておく。
各誤答が違う理由
  • B非同期呼び出しにはLambda組み込みの自動再試行(既定で最大2回)が存在する。呼び出し元の実装に依存する話ではない。
  • C再試行回数は既定で最大2回(MaximumRetryAttemptsで0〜2に調整可能)であり、無限リトライではない。また、イベントの経過時間の上限(MaximumEventAgeInSeconds)は既定で6時間(21600秒、設定可能範囲は60秒〜21600秒)であり、7日間ではない。
  • Dエラー発生によって同時実行数の設定が自動変更されることはない。これは関数のkill switchとして手動で行う操作である。
ひっかけ: 「同期呼び出しと同じくLambdaは再試行しない(B)」は誤り。非同期呼び出しには既定で自動再試行(最大2回)がある。 呼び出しタイプ(同期/非同期/ポーリングベース)によってエラー時の挙動が異なることを混同しないこと。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
この分野をもっと解いて、得点源に
Lambda開発 を含む問題を分野別に演習できます。
演習する →