長い処理手順の失敗時の再試行と補償

正解は イ です。 複数の手順を、 再試行・分岐・失敗時の補償(取消) つきで管理するのは Step Functions です。各ステップの状態が可視化され、コードの複雑さが減ります。 要件 Step Functionsの機能 順番の制御 状態遷移の定義 一時的な失敗 Retry(バックオフつき) 途中で失敗したら取消 Catchで補償の処理へ 複雑な処理が1つの関数に集中し、途中の状態の管理も難しい。 手順・再試行・取消を宣言的に定義でき、状態も追跡できる。 手作業の取消は遅く、誤りも起きやすい。 手動の確認が入り、自動化されない。

旅行の予約では、ホテル、航空券、レンタカーの3つの外部APIを順に呼ぶ。途中で失敗したら、それまでの予約を取り消す必要がある。手順と再試行・取消の処理をコードで管理するのが難しくなっている。

最も適切なものを1つ選択してください。

出典AWS非公式・オリジナル問題
ア
1つのLambda関数に3つの呼び出しと取消の処理をすべて書き、最大実行時間を15分にして完了を待つ
イ
Step Functionsで手順を定義し、各ステップの再試行と失敗時の取消処理を設定する
ウ
3つのAPIを並列に呼び出し、どれかが失敗したら運用者に通知して手作業で取り消してもらう
エ
SQSのキューを3つ作り、各ステップの結果をメールで確認してから次のステップを手動で実行する