DVAAWSのサービスを使用した開発
開発者はAWS Step Functionsを使った注文処理ワークフローを構築しています。外部決済APIを呼び出すLambda関数が一時的にエラーを返すことがあります。このエラーに対して自動リトライを行い、リトライ間隔を指数バックオフ(Exponential Backoff: 待機時間を指数的に増やす戦略)で設定したいと考えています。Amazon States Language(ASL)のステート定義においてどのブロックを使用し、どのパラメータを指定しますか?
ARetryブロックを使用し、ErrorEquals・IntervalSeconds・MaxAttempts・BackoffRateを指定する
✓ 正解
Step FunctionsのASLでリトライを実装する正しい方法です。Retryブロックに ErrorEquals(エラータイプ配列)、IntervalSeconds、MaxAttempts、BackoffRateを指定することで、指数バックオフリトライが自動的に実現されます。
BCatchブロックを使用し、ErrorEquals・IntervalSeconds・MaxAttempts・BackoffRateを指定する
Catchブロックはリトライではなく、エラー発生時に別のステートへ遷移させるフォールバック処理です。Catchブロックにはリトライ関連のフィールド(IntervalSeconds等)は存在しません。用途が異なります。
CFallbackブロックを使用し、RetryOn・InitialDelay・RetryCount・Multiplierを指定する
FallbackブロックはAmazon States Languageに存在しません。ASLの標準的なフィールドではなく、このような仕様は定義されていません。
DErrorHandlerブロックを使用し、ErrorType・WaitSeconds・Attempts・BackoffRateを指定する
ErrorHandlerブロックもASLに存在しません。ASLではRetryとCatchが標準的なエラー処理メカニズムです。存在しないフィールド名です。
解説
Step FunctionsのAmazon States Language(ASL)で一時的エラーをリトライするにはRetryブロックを使います。ErrorEqualsでエラータイプを配列指定し、IntervalSecondsで初回待機秒数、MaxAttemptsで最大リトライ回数、BackoffRateで待機時間の倍率を設定します。
選択肢BのCatchブロックは、リトライ後も失敗した際や特定エラー発生時に別のステートへ遷移させるフォールバック処理に使用するものであり、自動リトライのパラメータ(IntervalSeconds・MaxAttempts・BackoffRate)には対応していません。
選択肢CのFallbackブロックはASLに存在しないブロックであり、RetryOn・InitialDelay・RetryCount・Multiplierといったパラメータも定義されていません。
選択肢DのErrorHandlerブロックもASLに存在しないブロックです。ASLの標準エラーハンドリングにはRetryとCatchのみが使用されます。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →