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
.
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.com
di 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:
Passare alla pagina del servizio Web PubSub di Azure nella portale di Azure.
Selezionare Impostazioni dal menu.
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.
Immettere il nome dell'hub.
Selezionare Aggiungi in Configura gestori pari.
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.
Selezionare Salva nella parte superiore della pagina Configura hub Impostazioni.
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: