DVAAWSのサービスを使用した開発
開発者が非同期で呼び出されるLambda関数を使った注文処理システムを構築しています。処理が成功した場合はSNSトピックへ通知を送り、失敗した場合(すべてのリトライ後)はSQSキューにイベントを送信して手動確認できるようにしたいです。関数コードの変更を最小限にしてこの要件を満たすには何を設定すべきですか?
ALambda関数内にSNS送信コードを追加し、関数にDLQ(デッドレターキュー)としてSQSキューを設定する
Lambda関数内にSNS送信コードを追加し、関数にDLQ(デッドレターキュー)としてSQSキューを設定するアプローチは関数コード変更が必要です。
BLambda Destinationsで成功時の宛先にSNSトピック、失敗時の宛先にSQSキューを設定する
✓ 正解
Lambda Destinationsは非同期呼び出しの成功・失敗それぞれに対して宛先(SQS・SNS・EventBridge・別Lambda)を設定できる機能です。DLQは失敗時のみ対応しますが、Destinationsは成功時にも宛先を指定でき、関数コードの変更なしに実装可能なため最も適切な選択です。
CEventBridgeルールを作成してすべてのLambda呼び出しをキャプチャし、ステータスに応じてSNS・SQSへルーティングする
EventBridgeルールを作成してすべてのLambda呼び出しをキャプチャするアプローチは、ステータス判定ロジックの実装が必要で複雑です。
DCloudWatch Alarmsでエラーを検知してSNSに通知し、DLQでSQSにも転送する
CloudWatch Alarmsでエラーを検知してSNSに通知するアプローチは、成功時の通知には対応していません。
解説
Lambda Destinationsは非同期呼び出しの成功・失敗それぞれに対して宛先(SQS・SNS・EventBridge・別Lambda)を設定できる機能です。DLQは失敗時のみ対応しますが、Destinationsは成功時にも宛先を指定でき、関数コードの変更なしに実装可能なため最も適切な選択です。
選択肢AのLambda関数内にSNS送信コードを追加し、関数にDLQ(デッドレターキュー)としてSQSキューを設定するアプローチは関数コード変更が必要です。
選択肢CのEventBridgeルールを作成してすべてのLambda呼び出しをキャプチャするアプローチは、ステータス判定ロジックの実装が必要で複雑です。
選択肢DのCloudWatch Alarmsでエラーを検知してSNSに通知するアプローチは、成功時の通知には対応していません。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →