無限ノック › DVA 練習問題一覧 › 問題
DVAAWSのサービスを使用した開発

開発者はAWS Step Functionsを使った注文処理ワークフローを構築しています。外部決済APIを呼び出すLambda関数が一時的にエラーを返すことがあります。このエラーに対して自動リトライを行い、リトライ間隔を指数バックオフ(Exponential Backoff: 待機時間を指数的に増やす戦略)で設定したいと考えています。Amazon States Language(ASL)のステート定義においてどのブロックを使用し、どのパラメータを指定しますか?

A
Retryブロックを使用し、ErrorEquals・IntervalSeconds・MaxAttempts・BackoffRateを指定する
✓ 正解
Step FunctionsのASLでリトライを実装する正しい方法です。Retryブロックに ErrorEquals(エラータイプ配列)、IntervalSeconds、MaxAttempts、BackoffRateを指定することで、指数バックオフリトライが自動的に実現されます。
B
Catchブロックを使用し、ErrorEquals・IntervalSeconds・MaxAttempts・BackoffRateを指定する
Catchブロックはリトライではなく、エラー発生時に別のステートへ遷移させるフォールバック処理です。Catchブロックにはリトライ関連のフィールド(IntervalSeconds等)は存在しません。用途が異なります。
C
Fallbackブロックを使用し、RetryOn・InitialDelay・RetryCount・Multiplierを指定する
FallbackブロックはAmazon States Languageに存在しません。ASLの標準的なフィールドではなく、このような仕様は定義されていません。
D
ErrorHandlerブロックを使用し、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生成のオリジナル問題。

無料で演習を始める →
← DVA の問題一覧に戻る