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

マイクロサービスアーキテクチャで、「注文サービス」が `order.created` と `order.cancelled` の2種類のイベントを発行します。`order.created` はLambdaで在庫更新処理を行い、`order.cancelled` はSQSキューに送信して非同期の払い戻し処理を行う必要があります。発行元コードを変更せずに、追加実装を最小限にしてこのルーティングを実現する最適な方法はどれですか?

A
Amazon EventBridgeのカスタムイベントバスにルールを2つ作成し、イベントパターン(detail-type)でフィルタリングしてLambdaとSQSをそれぞれターゲットに設定する
✓ 正解
Amazon EventBridgeはイベント駆動アーキテクチャの中核サービスで、`detail-type` や `source` フィールドによるイベントパターンマッチングで複数ターゲット(Lambda・SQS・SNS・Step Functionsなど)へのルーティングをコードなしで実現します。カスタムイベントバスにルールを2つ定義するだけで、発行元への変更は不要です。
B
SNSトピックを作成してLambdaとSQSの両方をサブスクライバーに登録し、Lambda内でイベントタイプを判別して不要なメッセージを破棄する
(SNS)のサブスクリプションフィルタでも実現可能ですが、両サービスへの配信となるためSQSに不要なメッセージが届き、Lambda側の破棄ロジックが必要になります。
C
API Gatewayのリクエストルーティング機能を使い、パスベースでLambdaとSQSにトラフィックを振り分ける
(API Gateway)はリクエストルーティング機能ですが、イベントベースのルーティングには適していません。
D
Amazon EventBridgeのターゲットにLambdaを設定し、Lambda内で条件判定してSQSに転送するロジックを実装する
(Amazon EventBridge)はターゲットにLambdaを設定できますが、Lambda内での条件判定が必要で手動ルーティングになります。

解説

Amazon EventBridgeはイベント駆動アーキテクチャの中核サービスで、`detail-type` や `source` フィールドによるイベントパターンマッチングで複数ターゲット(Lambda・SQS・SNS・Step Functionsなど)へのルーティングをコードなしで実現します。カスタムイベントバスにルールを2つ定義するだけで、発行元への変更は不要です。 選択肢Bの(SNS)のサブスクリプションフィルタでも実現可能ですが、両サービスへの配信となるためSQSに不要なメッセージが届き、Lambda側の破棄ロジックが必要になります。 選択肢Cの(API Gateway)はリクエストルーティング機能ですが、イベントベースのルーティングには適していません。 選択肢Dの(Amazon EventBridge)はターゲットにLambdaを設定できますが、Lambda内での条件判定が必要で手動ルーティングになります。

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

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

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