次の方法で共有


Event Hubs にクライアント イベントを送信する

Note

イベント リスナー機能はプレビュー段階です。 イベント リスナーへの MQTT クライアント イベントの送信は、まだサポートされていません。

概要

パブリックにアクセス可能なエンドポイントを公開せずに自分のクライアント イベントをリッスンする場合は、イベント ハブ エンドポイントを使用して "イベント リスナー" ルールを構成し、それを関係付けるイベントの種類を指定するフィルターを構成することができます。 複数のイベント リスナーを同時に構成できます。 クライアント イベントが発生すると、Web PubSub サービスから、関連するすべてのイベント リスナーに並列で通知が送られます。

このチュートリアルでは、Web PubSub サービスが Event Hubs に接続するのを承認する方法と、サービス設定にイベント リスナー ルールを追加する方法について説明します。

Web PubSub サービスでは、Microsoft Entra ID とマネージド ID を使用して Event Hubs に接続します。 そのため、このサービスのマネージド ID を有効にし、Event Hubs に接続するための適切なアクセス許可が付与されていることを確認する必要があります。 組み込みのAzure Event Hubs データ送信者ロールをマネージド ID に付与することで、それに十分なアクセス許可を持たせることができます。

Event Hubs リスナーを構成するには、次の手順を行う必要があります。

イベント リスナーを構成する

Web PubSub サービスにマネージド ID を追加する

Azure portal から Azure Web PubSub サービス検索します。 [ID] に移動します。 システムに割り当てられた ID を追加するには、[システム割り当て済み] タブで [状態][オン] に切り替えます。 [保存] を選択します。 マネージド ID の詳細については、Azure Web PubSub でのマネージド ID に関するページを参照してください。

ポータルでのシステム割り当て ID の追加方法を示すスクリーンショット

マネージド ID に Azure Event Hubs Data sender ロールを付与する

  1. Azure portal で Azure Event Hubs リソースを見つけます。 Event Hubs 名前空間レベルまたはエンティティ レベルでロールを付与することを選択できます。 次の手順では、名前空間レベルを選択します。

  2. [アクセスの制御] に移動します。 [ロールの割り当ての追加] を選択します。 Event Hubs 名前空間へのアクセスを許可する方法を示すスクリーンショット

  3. [ロール] タブで [Azure Event Hubs データ送信者] ロールを選択します。そして、[次へ] を選択します。 [Azure EventHubs データ送信者] ロールの選択方法を示すスクリーンショット

  4. [メンバー] タブで、[マネージド ID] へのアクセス権の割り当てを選択します。 [メンバーの選択] を選択して、使用する Web PubSub サービスを選択します。 これで、ロールの割り当に対して、[レビューと割り当て] を実行することができます。 Web PubSub サービス ID の選択方法を示すスクリーンショット

イベント リスナー ルールをサービス設定に追加する

  1. Azure portal からご利用のサービスを見つけます。 [設定] に移動します。 次に、[追加] を選択してイベント リスナーを構成します。 既存のハブ構成の場合は、右側にある [...] を選択すると、同じ編集ページに移動します。 Web PubSub の設定を示すスクリーンショット

  2. ここで、次の編集ページでハブ名を構成し、[追加] を選択してイベント リスナーを追加する必要があります。 ハブ設定の構成方法を示すスクリーンショット

  3. [イベント リスナーの構成] ページで、まずイベント ハブ エンドポイントを構成します。 [サブスクリプションからのイベント ハブの選択] を選択して選択することも、完全修飾名前空間とイベント ハブ名を直接入力することもできます。 次に、リッスンする user および system イベントを選択します。 最後に、すべてが完了したら、[保存] を選択します。 Event Hubs リスナーの構成方法を示すスクリーンショット

ライブ デモを使用して構成をテストする

  1. こちらの Event Hubs Consumer Client Web アプリを開き、Event Hubs 接続文字列を入力して、コンシューマーとしてイベント ハブに接続します。 イベント ハブのインスタンスではなく Event Hubs 名前空間リソースから Event Hubs 接続文字列を取得する場合は、イベント ハブ名を指定する必要があります。 このイベント ハブ コンシューマー クライアントは、新しいイベントのみを読み取るモードで接続されています。前に公開されたイベントはここには表示されません。 運用環境で使用可能なすべてのイベントを読み取るように、コンシューマー クライアント接続モードを変更します。

  2. こちらの WebSocket Client Web アプリを使用して、クライアント イベントを生成します。 そのイベント ハブにシステム イベント connected を送信するように構成済みである場合は、Web PubSub サービスへの接続に成功した後、Event Hubs コンシューマー クライアントに出力された connected イベントを確認できます。 アプリを使用してユーザー イベントを生成することもできます。 Event Hubs コンシューマー クライアント アプリで印刷された接続イベントのスクリーンショット。ユーザー イベントを生成する WebSocket クライアント アプリの領域を示すスクリーンショット。

次のステップ

この記事では、イベント リスナーのしくみと、イベント ハブ エンドポイントを使用してイベント リスナーを構成する方法について説明しました。 Event Hubs に送信されるデータ形式については、次の仕様を参照してください。