Q48 — AWS DVA-C02 第3章
第 48/100 問 | ← 第3章
ある企業はパートナーから食品注文を受け取っています。この企業は、Amazon API Gateway APIおよびAWS Lambda統合を使用したマイクロサービスアプリケーションを所有しています。各パートナーは、API Gatewayによって公開されたカスタムAPIを呼び出して注文を送信します。API呼び出しは、注文を処理する共有Lambda関数を呼び出します。Lambda関数が注文を処理した後、パートナーは通知を受ける必要があります。各パートナーは、自身の注文の更新のみを受け取る必要があります。企業は、将来新しいパートナーを追加する際に、コード変更を可能な限り最小限に抑えたいと考えています。この要件を最も拡張性の高い方法で満たす解決策はどれですか?
- A. 各パートナーごとに異なるAmazon Simple Notification Service(Amazon SNS)トピックを作成します。Lambda関数を構成して、各パートナーのメッセージを対応するSNSトピックにパブリッシュします。
- B. 各パートナーごとに異なるLambda関数を作成します。Lambda関数を構成して、各パートナーのサービスエンドポイントに直接通知します。
- C. Amazon Simple Notification Service(Amazon SNS)トピックを作成します。Lambda関数を構成して、特定の属性を持つメッセージをSNSトピックにパブリッシュします。各パートナーをSNSトピックにサブスクライブし、適切なフィルタリングポリシーをトピックのサブスクリプションに適用します。 ✓
- D. Amazon Simple Notification Service(Amazon SNS)トピックを作成します。すべてのパートナーをSNSトピックにサブスクライブします。
正解: C. Amazon Simple Notification Service(Amazon SNS)トピックを作成します。Lambda関数を構成して、特定の属性を持つメッセージをSNSトピックにパブリッシュします。各パートナーをSNSトピックにサブスクライブし、適切なフィルタリングポリシーをトピックのサブスクリプションに適用します。
解説
選択肢Cが最も拡張性の高い解決策です。このソリューションでは、1つのSNSトピックを使用し、Lambda関数がそのトピックにメッセージをパブリッシュします。メッセージのパブリッシュ時に特定の属性を追加することで、注文のパートナーを識別します。その後、各パートナーはこのSNSトピックにサブスクライブし、適切なフィルタリングポリシーを適用することで、自身の注文のみの更新を受け取ることができます。この設計により、新しいパートナーを追加する際にLambda関数のコードを変更する必要がなくなります。他の選択肢では、選択肢Aは各パートナーごとに異なるSNSトピックを作成するため、管理が煩雑になります。選択肢Bは各パートナーごとに異なるLambda関数を作成するため、同様に管理が煩雑になり、選択肢Cほど柔軟ではありません。選択肢Dでは、すべてのパートナーが同一のSNSトピックにサブスクライブされるため、将来的に新しいパートナーを追加する際に管理および拡張性の問題が生じる可能性があります。 【ランタン認定提供:swufelp1999】