Azure Web PubSub サービスのイベント ハンドラー

イベント ハンドラーでは、受信クライアント イベントが処理されます。 イベント ハンドラーは、Azure portal または Azure CLI を使用してサービスに登録、設定できます。 クライアント イベントがトリガーされると、サービスから適切なイベント ハンドラーにイベントを送信できます。 Web PubSub サービスでは、サーバー側としてイベント ハンドラーを使用できるようになりました。これにより、イベントがトリガーされたときに呼び出すサービスのパブリック アクセス可能なエンドポイントが公開されます。 つまり Webhook として機能します。

Web PubSub サービスは、CloudEvents HTTP プロトコルを使用して、アップストリームの Webhook にクライアント イベントを配信します。

すべてのイベントに対して、このサービスは登録されたアップストリーム エンドポイントへの HTTP POST 要求を形成し、HTTP 応答を期待します。

サービスからサーバーに送信されるデータは、常に CloudEvents binary 形式です。

Screenshot of Web PubSub service event trigger.

アップストリームと検証

Webhook エンドポイントを構成するときに、URL テンプレートを定義する {event} パラメーターを URL に含めることができます。 サービスでは、クライアント要求を受信すると、Webhook URL の値が動的に計算されます。 たとえば、ハブ /client/hubs/chat にイベント ハンドラー URL パターン http://host.com/api/{event} が構成されている状態で、要求 chat を受信すると、クライアントは接続するときに、最初に URL http://host.com/api/connect に POST します。 {event} パラメーターは、PubSub WebSocket クライアントがカスタム イベントを送信するときに役立つ可能性があり、イベント ハンドラーでは、さまざまなイベントをさまざまなアップストリーム エンドポイントにディスパッチできます。 URL ドメイン名では {event} パラメーターを使用できません。

Azure portal または CLI を使用してイベント ハンドラーの Webhook を設定すると、サービスでは、CloudEvents の不正使用防止に従ってアップストリームの Webhook が検証されます。 このメカニズムによって、登録されているすべてのアップストリーム Webhook の URL が検証されます。 WebHook-Request-Origin 要求ヘッダーはサービス ドメイン名 xxx.webpubsub.azure.com に設定されており、これは応答にこのドメイン名または * を含むヘッダー WebHook-Allowed-Origin があることが期待されます。

検証を実行すると、{event} パラメーターは validate に解決されます。 たとえば、URL を http://host.com/api/{event} に設定しようとすると、サービスは http://host.com/api/validate に対して OPTIONS 要求を試みます。 また、応答が有効な場合にのみ、構成を正常に設定できます。

現時点では、WebHook-Request-RateWebHook-Request-Callback はサポートされていません。

サービスと Webhook 間の認証

これらのメソッドのいずれかを使用して、サービスと webhook の間で認証を行うことができます。

イベント ハンドラーの構成

Azure portal を使用して構成する

新しいハブにイベント ハンドラーを追加することも、既存のハブを編集することもできます。

新しいハブでイベント ハンドラーを構成するには、以下の手順を実行してください。

  1. Azure portal で、Azure Web PubSub サービス ページに移動します。

  2. メニューから [設定] を選択します。

  3. [追加] を選択してハブを作成し、サーバー側の Webhook URL を構成します。 注: 既存のハブにイベント ハンドラーを追加するには、ハブを選択して [編集] を選択します。

    Screenshot of setting the event handler.

  4. ハブ名を入力します。

  5. [イベント ハンドラーの構成][追加] を選択します。

  6. イベント ハンドラー ページで、次のフィールドを構成します: 1。 「URL テンプレート」 フィールドにサーバー Webhook URL を入力します。 1. サブスクライブするシステム イベントを選択します。1. サブスクライブするユーザー イベントを選択します。1. アップストリーム要求の認証に使用する認証方法を選択します。 1. 確認 を選択します。 Screenshot of Azure Web PubSub Configure Event Handler.

  7. [ハブ設定の構成] ページの上部にある [保存] を選択します。

    Screenshot of Azure Web PubSub Configure Hub Settings.

Azure CLI を使用して構成する

Azure CLI の az webpubsub hub グループ コマンドを使用して、イベント ハンドラーの設定を構成します。

コマンド 説明
create WebPubSub サービスのハブ設定を作成します。
delete WebPubSub サービスのハブ設定を削除します。
list WebPubSub サービスのすべてのハブ設定を一覧表示します。
show WebPubSub サービスのハブ設定を表示します。
update WebPubSub サービスのハブ設定を更新します。

以下に、MyWebPubSub リソースのハブ MyHub 用に 2 つの Webhook URL を作成する例を示します。

az webpubsub hub create -n "MyWebPubSub" -g "MyResourceGroup" --hub-name "MyHub" --event-handler url-template="http://host.com" user-event-pattern="*" --event-handler url-template="http://host2.com" system-event="connected" system-event="disconnected" auth-type="ManagedIdentity" auth-resource="uri://myUri"

次のステップ

これらのリソースを使用して、独自のアプリケーションの構築を開始します。