Gestionnaire d’événements dans le service Azure Web PubSub

Le gestionnaire d’événements gère les événements clients entrants. Les gestionnaires d’événements sont inscrits et configurés dans le service via le Portail Azure ou Azure CLI. Lorsqu’un événement client est déclenché, le service peut envoyer l’événement au gestionnaire d’événements approprié. Le service Web PubSub prend désormais en charge le gestionnaire d’événements en tant que côté serveur, qui expose le point de terminaison accessible publiquement au service à appeler lorsque l’événement est déclenché. En d’autres termes, il agit comme un webhook.

Le service Web PubSub fournit des événements clients au webhook amont à l’aide du protocole HTTP CloudEvents.

Pour chaque événement, le service formule une requête HTTP POST au point de terminaison de amont inscrit et attend une réponse HTTP.

L’envoi des données du service au serveur est toujours au format binary CloudEvents.

Screenshot of Web PubSub service event trigger.

Serveur en amont et validation

Lorsque vous configurez le point de terminaison webhook, l’URL peut inclure le {event} paramètre pour définir un modèle d’URL. Le service calcule de manière dynamique la valeur de l’URL du webhook lorsque la demande du client arrive. Par exemple, lorsqu’une demande /client/hubs/chat arrive, avec un modèle d'URL de gestionnaire d’événements configuré http://host.com/api/{event} pour le hub chat, lorsque le client se connecte, il publie d’abord vers cette URL : http://host.com/api/connect. Le {event} paramètre peut être utile lorsqu’un client WebSocket PubSub envoie des événements personnalisés, que le gestionnaire d’événements permet de distribuer différents événements à différents points de terminaison amont. Le paramètre {event} n’est pas autorisé dans le nom de domaine d’URL.

Lors de la configuration du webhook du gestionnaire d’événements via Portail Azure ou l’interface CLI, le service suit cloudEvents Abuse Protection pour valider le webhook amont. Chaque URL inscrite de webhook en amont sera validée par ce mécanisme. L’en-tête de demande WebHook-Request-Origin est défini sur le nom de domaine de service xxx.webpubsub.azure.com et il s’attend à ce que la réponse ayant l’en-tête WebHook-Allowed-Origin contienne ce nom de domaine ou *.

Lors de la validation, le paramètre {event} est résolu en validate. Par exemple, en essayant de définir l’URL sur http://host.com/api/{event}, le service essaiera de CHOISIR une requête sur http://host.com/api/validate. Et ce n’est que lorsque la réponse est valide que la configuration peut être définie correctement.

À l’heure actuelle, WebHook-Request-Rate et WebHook-Request-Callback ne sont pas pris en charge.

Authentification entre le service et le webhook

Vous pouvez utiliser l’une de ces méthodes pour vous authentifier entre le service et le webhook.

  • Mode anonyme
  • L’authentification simple avec est ?code=<code> fournie via l’URL de Webhook configurée en tant que paramètre de requête.
  • Autorisation Microsoft Entra. Pour plus d’informations, consultez Utiliser une identité managée dans les événements client.

Configurer un gestionnaire d’événements

Configurer via Portail Azure

Vous pouvez ajouter un gestionnaire d’événements à un nouveau hub ou modifier un hub existant.

Pour configurer un gestionnaire d’événements dans un nouveau hub :

  1. Accédez à votre page de service Azure Web PubSub dans le Portail Azure.

  2. Sélectionnez Paramètres dans le menu.

  3. Sélectionnez Ajouter pour créer un hub et configurer votre URL de webhook côté serveur. Remarque : Pour ajouter un gestionnaire d’événements à un hub existant, sélectionnez le hub et sélectionnez Modifier.

    Screenshot of setting the event handler.

  4. Entrez le nom de votre hub.

  5. Sélectionnez Ajouter sous Configurer des gestionnaires pairs.

  6. Dans la page du gestionnaire d’événements, configurez les champs suivants : 1. Entrez l’URL du webhook du serveur dans le champ Modèle d’URL. 1. Sélectionnez les événements système auxquels vous souhaitez vous abonner. 1. Sélectionnez les événements utilisateur auxquels vous souhaitez vous abonner. 1. Sélectionnez la méthode d’authentification pour authentifier amont demandes. 1. Cliquez sur Confirmer. Screenshot of Azure Web PubSub Configure Event Handler.

  7. Sélectionnez Enregistrer en haut de la page Configurer le hub Paramètres.

    Screenshot of Azure Web PubSub Configure Hub Settings.

Configurer via Azure CLI

Utilisez les commandes de groupe az webpubsub hub d’Azure CLI pour configurer les paramètres du gestionnaire d’événements.

Commandes Description
create Crée les paramètres de hub pour le service WebPubSub.
delete Supprime les paramètres de hub pour le service WebPubSub.
list Répertorie tous les paramètres de hub pour le service WebPubSub.
show Affiche les paramètres de hub pour le service WebPubSub.
update Met à jour les paramètres de hub pour le service WebPubSub.

Voici un exemple de création de deux URL de webhook pour le hub MyHub de MyWebPubSub ressources :

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"

Étapes suivantes

Utilisez ces ressources pour commencer à créer votre propre application :