開発者がAWS Step Functionsでデータ処理ワークフローを構築しています。あるタスクステートでLambda関数を呼び出しますが、この関数は過負荷時に Lambda.TooManyRequestsException を返すことがあります。この一時的なエラーに対して最大3回・指数バックオフ(初回2秒・乗数2.0)でリトライし、3回失敗した場合はエラー処理ステートに遷移させたいと考えています。ステートマシン定義に追加すべき設定として正しいものをすべて選んでください。(2つ選択)
Step Functionsのタスクステートには組み込みの再試行(Retry)と例外捕捉(Catch)機能があります。RetryフィールドでErrorEquals・MaxAttempts・IntervalSeconds(初回待機秒)・BackoffRate(乗数)を指定すると指数バックオフでのリトライを宣言的に定義できます。最大リトライ後もエラーが解消しない場合はCatchフィールドのNextステートに遷移します。 選択肢C(Lambda内でtry-catch実装)はStep FunctionsのリトライメカニズムをバイパスしてLambda側でリトライを管理する設計であり、Step Functionsコンソール上でのリトライ可視性・監査性が失われるうえ、Lambda実行時間の上限(最大15分)内にすべてのリトライを完了させる必要があるため要件を適切に実現できません。 選択肢D(TimeoutSeconds)はタスクの最大実行時間を設定するパラメータであり、リトライのトリガーや制御とは独立しています。タイムアウト超過はStates.TaskFailedエラーを発生させますが、リトライを自動的にトリガーする機能はありません。