AI-200:Developing AI Cloud Solutions on Azure Azure サービスへの接続と利用 問1
Azure サービスへの接続と利用/イベント/メッセージ ベースの AI ソリューションの開発(Service Bus・Event Grid)注文サービスが送信する1つの注文メッセージを、「在庫の引き当て」と「埋め込みの更新」という2つの独立した処理が、それぞれ受け取る必要があります。さらに、埋め込みの更新は、商品カテゴリが book の注文だけを処理します。Azure Service Bus の構成として適切なものはどれですか。
当サイトのオリジナル問題(AI-200:Developing AI Cloud Solutions on Azureの出題範囲「Azure サービスへの接続と利用」に対応。実際の試験問題ではありません)
- Aキューを1つ作り、2つの処理を競合コンシューマーとして同じキューから受信させる
- Bキューを1つ作ってセッションを有効にし、処理ごとに別のセッション ID で受信させる
- Cトピックとサブスクリプションを1つずつ作り、2つの処理を同じサブスクリプションから受信させて、埋め込み更新の処理は受信後に category を見て book 以外を破棄する
- Dトピックと2つのサブスクリプションを作り、埋め込み更新用のサブスクリプションには category = 'book' で絞り込むフィルター ルールを設定する
正解:D
解説
Service Bus のトピックとサブスクリプションを使うと、1つのメッセージの写しを複数の受信者に配れます(パブリッシュ/サブスクライブ)。各サブスクリプションはキューのように独立してメッセージを受け取り、フィルター ルールでどのメッセージを受け取るかを絞り込めます。たとえば、メッセージのプロパティ category を条件にした SQL フィルターを設定できます。
下線の用語は 用語集 で意味を確認できます。
選択肢ごとの解説
- A誤り。キューでは、1つのメッセージを受け取るのは1つの受信者だけです。2つの処理がそれぞれ同じメッセージを受け取ることはできません。
- B誤り。セッションは、関連するメッセージを順序どおりにまとめて処理するための機能です。同じメッセージを複数の処理に配る仕組みではありません。
- C誤り。1つのサブスクリプションから複数の処理が受信すると、キューと同じく競合コンシューマーになり、1つのメッセージを受け取るのはどちらか一方だけです。処理ごとにサブスクリプションを分ける必要があります。
- D正しい。トピックで2つの処理に同じメッセージを配り、サブスクリプションのフィルター ルールで受け取る範囲を絞れます。