DVAAWSのサービスを使用した開発
開発者は注文確認メールを非同期で送信するLambda関数を構築しています。関数の実行が成功した場合は次の処理ステップのSQSキューにメッセージを送り、失敗した場合は運用チームへ通知するSNSトピックにアラートを送りたいと考えています。Lambda関数のコードを変更せずにこの要件を実現する最も適切な方法はどれですか?
ALambda関数のデッドレターキュー(DLQ)にSNSトピックを設定し、成功時の処理はコード内にSQS送信ロジックを実装する
Lambda関数のDLQ(デッドレターキュー)は失敗時のみ対応しており、成功時の送信先は設定できないため両方のシナリオに対応できません。
BLambda関数の非同期呼び出し設定でDestinationを構成し、成功時の送信先にSQSキュー、失敗時の送信先にSNSトピックを設定する
✓ 正解
Lambda Destinationsは非同期呼び出しの成功・失敗それぞれに異なる送信先を設定でき、コード変更なしに構成でき、実行コンテキスト情報も自動付与されます。
CEventBridgeルールを作成し、Lambdaの成功・失敗イベントを検知してSQSおよびSNSにルーティングする
EventBridgeルーティングは可能ですが、Destinationsは本用途に特化した機能で、設定の簡潔性と情報の完全性でDestinationsが優れています。
DLambda関数の環境変数にSQSとSNSのARNを設定し、処理結果に応じてSDKで直接送信するロジックをコードに追加する
環境変数でARNを設定してSDKで直接送信するロジックはコード実装が必要で、Destinationsの利点(ノーコード設定・自動コンテキスト付与)を活かせません。
解説
正解:
Lambda関数の非同期呼び出し設定でDestinationを構成し、成功時の送信先にSQSキュー、失敗時の送信先にSNSトピックを設定する。
Lambda Destinationsは、非同期呼び出しの成功・失敗それぞれに対してSQS・SNS・EventBridge・別のLambdaを送信先としてコード変更なしに設定できる機能です。実行コンテキスト情報(リクエストID・エラーメッセージ等)も自動付与され可観測性の面でも優れています。
選択肢Aは、DLQ(デッドレターキュー)は失敗時のみ対応しており成功時の送信先は設定できないため、両方のシナリオに対応できません。
選択肢Cは、EventBridgeでもルーティングは可能ですが、本用途にはDestinationsが特化しており設定の簡潔性と情報の完全性で優れます。
選択肢Dは、SDKで直接送信するロジックはコード実装が必要で、『コードを変更せず』という要件に反します。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →