Gestore eventi nel servizio Web PubSub di Azure

Il gestore eventi gestisce gli eventi client in ingresso. I gestori eventi vengono registrati e configurati nel servizio tramite il portale di Azure o l'interfaccia della riga di comando di Azure. Quando viene attivato un evento client, il servizio può inviare l'evento al gestore eventi appropriato. Il servizio Web PubSub supporta ora il gestore eventi come lato server, che espone l'endpoint accessibile pubblicamente per il servizio da richiamare quando viene attivato l'evento. In altre parole, funge da webhook.

Il servizio Web PubSub recapita gli eventi client al webhook upstream usando il protocollo HTTP CloudEvents.

Per ogni evento, il servizio formula una richiesta HTTP POST all'endpoint upstream registrato e prevede una risposta HTTP.

I dati inviati dal servizio al server sono sempre in formato CloudEvents binary .

Screenshot of Web PubSub service event trigger.

Upstream e convalida

Quando si configura l'endpoint del webhook, l'URL può includere il {event} parametro per definire un modello di URL. Il servizio calcola in modo dinamico il valore dell'URL del webhook quando arriva la richiesta client. Ad esempio, quando viene fornita una richiesta /client/hubs/chat , con un modello http://host.com/api/{event} di URL del gestore eventi configurato per l'hub chat, quando il client si connette, eseguirà prima post a questo URL: http://host.com/api/connect. Il {event} parametro può essere utile quando un client PubSub WebSocket invia eventi personalizzati, che il gestore eventi consente di inviare eventi diversi a endpoint upstream diversi. Il {event} parametro non è consentito nel nome di dominio URL.

Quando si configura il webhook del gestore eventi tramite portale di Azure o l'interfaccia della riga di comando, il servizio segue CloudEvents Abuse Protection per convalidare il webhook upstream. Ogni URL del webhook upstream registrato verrà convalidato da questo meccanismo. L'intestazione WebHook-Request-Origin della richiesta è impostata sul nome xxx.webpubsub.azure.comdi dominio del servizio e prevede che la risposta contenga un'intestazione WebHook-Allowed-Origin che contenga questo nome di dominio o *.

Quando si esegue la convalida, il {event} parametro viene risolto in validate. Ad esempio, quando si tenta di impostare l'URL su http://host.com/api/{event}, il servizio proverà a SCEGLIERE una richiesta su http://host.com/api/validate. E solo quando la risposta è valida, la configurazione può essere impostata correttamente.

Per il momento, non è supportato WebHook-Request-Rate e WebHook-Request-Callback.

Autenticazione tra il servizio e il webhook

È possibile usare uno di questi metodi per eseguire l'autenticazione tra il servizio e il webhook.

  • Modalità anonima
  • L'autenticazione semplice con ?code=<code> viene fornita tramite l'URL del webhook configurato come parametro di query.
  • Autorizzazione di Microsoft Entra. Per altre informazioni, vedere Usare un'identità gestita negli eventi client.

Configurare il gestore eventi

Configurare tramite portale di Azure

È possibile aggiungere un gestore eventi a un nuovo hub o modificare un hub esistente.

Per configurare un gestore eventi in un nuovo hub:

  1. Passare alla pagina del servizio Web PubSub di Azure nella portale di Azure.

  2. Selezionare Impostazioni dal menu.

  3. Selezionare Aggiungi per creare un hub e configurare l'URL del webhook sul lato server. Nota: per aggiungere un gestore eventi a un hub esistente, selezionare l'hub e selezionare Modifica.

    Screenshot of setting the event handler.

  4. Immettere il nome dell'hub.

  5. Selezionare Aggiungi in Configura gestori pari.

  6. Nella pagina del gestore eventi configurare i campi seguenti: 1. Immettere l'URL del webhook del server nel campo Modello URL. 1. Selezionare gli eventi di sistema a cui si desidera eseguire la sottoscrizione. 1. Selezionare gli eventi utente a cui si vuole sottoscrivere. 1. Selezionare Metodo di autenticazione per autenticare le richieste upstream. 1. Seleziona Conferma. Screenshot of Azure Web PubSub Configure Event Handler.

  7. Selezionare Salva nella parte superiore della pagina Configura hub Impostazioni.

    Screenshot of Azure Web PubSub Configure Hub Settings.

Configurare tramite l'interfaccia della riga di comando di Azure

Usare i comandi az webpubsub hub group dell'interfaccia della riga di comando di Azure per configurare le impostazioni del gestore eventi.

Comandi Descrizione
create Creare le impostazioni dell'hub per il servizio WebPubSub.
delete Eliminare le impostazioni dell'hub per il servizio WebPubSub.
list Elencare tutte le impostazioni dell'hub per il servizio WebPubSub.
show Mostra le impostazioni dell'hub per il servizio WebPubSub.
update Aggiornare le impostazioni dell'hub per il servizio WebPubSub.

Di seguito è riportato un esempio di creazione di due URL webhook per l'hub MyHub di MyWebPubSub risorsa:

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"

Passaggi successivi

Usare queste risorse per iniziare a creare un'applicazione personalizzata: