注文処理ワークフローを管理するAWS Step Functions ステートマシンがあります。`ValidateOrderTask`(Lambda統合)は不正な注文データを受け取った場合に`OrderValidationError`というカスタムエラーをスローします。このエラーが発生した場合は最大3回(初回含む)試行し、それでも失敗した場合は`NotifyFailureTask`ステートに遷移させる要件があります。この要件を正しく実装する方法はどれですか?
Step FunctionsのTask状態はRetryとCatchの設定を直接定義できます。Retryブロックに`ErrorEquals: ["OrderValidationError"]`と`MaxAttempts: 2`を設定すると、初回失敗後に最大2回リトライ(計3回の試行)します。全リトライが失敗した場合、Catchブロックが`OrderValidationError`をキャッチして`NotifyFailureTask`ステートに遷移します。これはStep Functionsのオーケストレーション機能を正しく活用した実装です。 選択肢AのLambda内リトライはStep FunctionsのTask観点では1回の実行として扱われ、Catchによる状態遷移が機能しない。 選択肢CのEventBridgeはStep Functionsの外部でイベントを処理するサービスであり、ステートマシン内のステート間遷移制御には使用できない。 選択肢DのSQSデッドレターキューはLambdaの非同期呼び出し(Event型)にのみ適用され、Step Functionsの同期呼び出し(RequestResponse)では機能しない。