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 に Azure Event Hubs Data sender
ロールを付与する
Azure portal で Azure Event Hubs リソースを見つけます。 Event Hubs 名前空間レベルまたはエンティティ レベルでロールを付与することを選択できます。 次の手順では、名前空間レベルを選択します。
[アクセスの制御] に移動します。 [ロールの割り当ての追加] を選択します。
[ロール] タブで [Azure Event Hubs データ送信者] ロールを選択します。そして、[次へ] を選択します。
[メンバー] タブで、[マネージド ID] へのアクセス権の割り当てを選択します。 [メンバーの選択] を選択して、使用する Web PubSub サービスを選択します。 これで、ロールの割り当に対して、[レビューと割り当て] を実行することができます。
イベント リスナー ルールをサービス設定に追加する
Azure portal からご利用のサービスを見つけます。 [設定] に移動します。 次に、[追加] を選択してイベント リスナーを構成します。 既存のハブ構成の場合は、右側にある [...] を選択すると、同じ編集ページに移動します。
ここで、次の編集ページでハブ名を構成し、[追加] を選択してイベント リスナーを追加する必要があります。
[イベント リスナーの構成] ページで、まずイベント ハブ エンドポイントを構成します。 [サブスクリプションからのイベント ハブの選択] を選択して選択することも、完全修飾名前空間とイベント ハブ名を直接入力することもできます。 次に、リッスンする
user
およびsystem
イベントを選択します。 最後に、すべてが完了したら、[保存] を選択します。
ライブ デモを使用して構成をテストする
こちらの Event Hubs Consumer Client Web アプリを開き、Event Hubs 接続文字列を入力して、コンシューマーとしてイベント ハブに接続します。 イベント ハブのインスタンスではなく Event Hubs 名前空間リソースから Event Hubs 接続文字列を取得する場合は、イベント ハブ名を指定する必要があります。 このイベント ハブ コンシューマー クライアントは、新しいイベントのみを読み取るモードで接続されています。前に公開されたイベントはここには表示されません。 運用環境で使用可能なすべてのイベントを読み取るように、コンシューマー クライアント接続モードを変更します。
こちらの WebSocket Client Web アプリを使用して、クライアント イベントを生成します。 そのイベント ハブにシステム イベント
connected
を送信するように構成済みである場合は、Web PubSub サービスへの接続に成功した後、Event Hubs コンシューマー クライアントに出力されたconnected
イベントを確認できます。 アプリを使用してユーザー イベントを生成することもできます。
次のステップ
この記事では、イベント リスナーのしくみと、イベント ハブ エンドポイントを使用してイベント リスナーを構成する方法について説明しました。 Event Hubs に送信されるデータ形式については、次の仕様を参照してください。