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

AWS Step Functionsで構築したワークフローに、外部APIを呼び出すLambdaタスクが含まれています。外部APIは高負荷時に `TooManyRequestsException` を返します。この例外に対して指数バックオフ(BackoffRate: 2、初回待機: 2秒)で最大3回リトライし、それでも失敗した場合は専用のエラー処理ステートに遷移させるには、ASL(Amazon States Language)でどのように設定しますか?

A
Lambda関数内にtry-catchとsleepロジックを実装してリトライを行い、最終失敗時はStep FunctionsのSendTaskFailure APIを呼び出す
Lambda関数内のtry-catchでのリトライ実装は、コードの複雑性を増しワークフロー管理とビジネスロジックが混在するうえ、リトライ待機中にLambdaの実行時間を消費し続けるコストとタイムアウトのリスクがあります。
B
タスクステートのRetryフィールドで `TooManyRequestsException` の指数バックオフリトライを設定し、Catchフィールドでエラーハンドラーステートへ遷移を定義する
✓ 正解
タスクステートのRetryフィールドに `TooManyRequestsException` を対象としてMaxAttempts=3・BackoffRate=2・IntervalSeconds=2を設定し、Catchフィールドでエラーハンドラーステートへ遷移を定義する Step FunctionsのASLではタスクステートに `Retry` と `Catch` をネイティブ定義できます。Retryでは `ErrorEquals`(対象エラー名)・`MaxAttempts`(最大試行回数)・`BackoffRate`(待機時間の乗数)・`IntervalSeconds`(初回待機秒数)を指定し、指数バックオフが自動で適用されます。全リトライ失敗後は `Catch` に定義したNextステートへ遷移します。このアプローチにより再試行ロジックをワークフロー定義に集約でき、Lambda関数はビジネスロジックのみに専念できます。
C
SQSデッドレターキューをStep Functionsと統合し、失敗イベントをキューに送信してエラー処理Lambda関数で再処理する
SQSデッドレターキューの統合はStep Functionsネイティブのエラーフローとは独立したコンポーネントであり、同一ワークフロー内での細粒度なバックオフ制御には適しません。
D
CloudWatch Alarmsでエラーメトリクスを監視し、アラーム発火時にEventBridgeルールでエラー処理ワークフローを別途起動する
CloudWatch AlarmsとEventBridgeによる外部監視は事後的な検知・対応であり、個別タスクの失敗に対する指数バックオフリトライをワークフロー定義内で制御することはできません。

解説

タスクステートのRetryフィールドに `TooManyRequestsException` を対象としてMaxAttempts=3・BackoffRate=2・IntervalSeconds=2を設定し、Catchフィールドでエラーハンドラーステートへ遷移を定義する Step FunctionsのASLではタスクステートに `Retry` と `Catch` をネイティブ定義できます。Retryでは `ErrorEquals`(対象エラー名)・`MaxAttempts`(最大試行回数)・`BackoffRate`(待機時間の乗数)・`IntervalSeconds`(初回待機秒数)を指定し、指数バックオフが自動で適用されます。全リトライ失敗後は `Catch` に定義したNextステートへ遷移します。このアプローチにより再試行ロジックをワークフロー定義に集約でき、Lambda関数はビジネスロジックのみに専念できます。 選択肢AのLambda関数内のtry-catchでのリトライ実装は、コードの複雑性を増しワークフロー管理とビジネスロジックが混在するうえ、リトライ待機中にLambdaの実行時間を消費し続けるコストとタイムアウトのリスクがあります。 選択肢CのSQSデッドレターキューの統合はStep Functionsネイティブのエラーフローとは独立したコンポーネントであり、同一ワークフロー内での細粒度なバックオフ制御には適しません。 選択肢DのCloudWatch AlarmsとEventBridgeによる外部監視は事後的な検知・対応であり、個別タスクの失敗に対する指数バックオフリトライをワークフロー定義内で制御することはできません。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。

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