Recapitare eventi ai webhook usando gli argomenti dello spazio dei nomi - portale di Azure (anteprima)
L'articolo fornisce istruzioni dettagliate su come pubblicare eventi in Griglia di eventi di Azure in formato JSON CloudEvents e recapitarli usando il modello di recapito push. Per essere specifici, pubblicare eventi in un argomento dello spazio dei nomi in Griglia di eventi ed eseguire il push di tali eventi da una sottoscrizione di eventi a una destinazione del gestore webhook. Per altre informazioni sul modello di recapito push, vedere Panoramica del recapito push.
Nota
Gli spazi dei nomi di Griglia di eventi di Azure supportano attualmente l'autenticazione con token di firma di accesso condiviso e chiavi di accesso.
Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.
Creare uno spazio dei nomi di Griglia di eventi
Uno spazio dei nomi di Griglia di eventi fornisce un endpoint definito dall'utente a cui gli eventi vengono pubblicati. L'esempio seguente crea uno spazio dei nomi nel gruppo di risorse usando Bash in Azure Cloud Shell. Il nome dello spazio dei nomi deve essere univoco, poiché fa parte di una voce Domain Name System (DNS).
Passare al portale di Azure.
Nella barra di ricerca dell'argomento, digitare
Event Grid Namespaces
e selezionareEvent Grid Namespaces
tra i risultati.Nella pagina Spazi dei nomi di Griglia di eventi, selezionare + Crea sulla barra dei comandi.
Nella pagina Crea spazio dei nomi, seguire questa procedura:
- Selezionare la sottoscrizione di Azure in cui creare lo spazio dei nomi.
- Creare un nuovo gruppo di risorse selezionando Crea nuovo o selezionare un gruppo di risorse esistente.
- Immettere un nome per lo spazio dei nomi.
- Selezionare il percorso in cui si vuole creare il gruppo di risorse.
- Quindi selezionare Rivedi e crea.
- Nella pagina Rivedi e crea selezionare Crea.
Nella pagina Distribuzione, selezionare Vai alla risorsa dopo che la distribuzione è stata completata con successo.
Ottenere la chiave di accesso
- Nella pagina Spazio dei nomi di Griglia di eventi, selezionare Chiavi di accesso nel menu a sinistra.
- Selezionare il pulsante copia accanto alla chiave di accesso.
- Salvare la chiave di accesso da qualche parte. perché verrà usato in seguito.
Creare un argomento nello spazio dei nomi
Creare un argomento contenente tutti gli eventi pubblicati nell'endpoint dello spazio dei nomi.
- Selezionare Argomenti nel menu a sinistra.
- Nella pagina Argomenti, selezionare + Argomento sulla barra dei comandi.
- Nella pagina Crea argomento procedere come segue:
Creare un endpoint del messaggio
Prima di sottoscrivere gli eventi, creare l'endpoint per il messaggio dell'evento. L'endpoint richiede in genere azioni basate sui dati degli eventi. Per semplificare questo avvio rapido, si distribuisce un'app Web preesistente che visualizza i messaggi di evento. La soluzione distribuita include un piano di servizio app, un'app Web del servizio app e codice sorgente da GitHub.
Selezionare Distribuisci in Azure per distribuire la soluzione nella sottoscrizione.
Nella pagina Distribuzione personalizzata procedere come segue:
Per Gruppo di risorse selezionare il gruppo di risorse creato durante la creazione dell'account di archiviazione. Sarà più semplice eseguire la pulizia dopo aver completato l'esercitazione eliminando il gruppo di risorse.
Per Nome sito immettere un nome per l'app Web.
Per Nome piano di hosting immettere un nome per il piano del servizio app da usare per l'hosting dell'app Web.
Selezionare Rivedi e crea.
Nella pagina Rivedi e crea selezionare Crea.
Il completamento della distribuzione richiede alcuni minuti. Nella pagina Distribuzione selezionare Vai al gruppo di risorse.
Nell'elenco di risorse della pagina Gruppo di risorse selezionare l'app Web creata. Questo elenco include anche il piano di servizio app e l'account di archiviazione.
Nella pagina Servizio app per l'app Web selezionare l'URL per passare al sito Web. Il file deve essere nel formato
https://<your-site-name>.azurewebsites.net
.Confermare che il sito viene visualizzato ma non viene ancora inviato alcun evento.
Importante
Mantenere aperta la finestra del visualizzatore Griglia di eventi di Azure in modo che sia possibile visualizzare gli eventi durante la pubblicazione.
Creare una sottoscrizione di eventi
Creare una sottoscrizione eventi impostando la modalità di recapito su Push, la quale supporta il recapito push.
- Passare alla scheda o finestra con la pagina Spazio dei nomi Griglia di eventi aperta dalla scheda o finestra con la pagina Spazio dei nomi di Hub eventi aperta.
- Nella pagina Spazio dei nomi Griglia di eventi, selezionare Argomenti nel menu a sinistra.
- Nella pagina Argomenti, selezionare l'argomento creato nel passaggio precedente.
- Selezionare + Sottoscrizione sulla barra dei comandi.
- Nella pagina Crea sottoscrizione di eventi procedere come segue:
Nella scheda Basic, immettere un nome per la sottoscrizione eventi.
Selezionare Push come modalità di recapito degli eventi.
Per Tipo di endpoint selezionare Web Hook.
Selezionare Configura un endpoint.
Nella pagina Web Hook specificare l'endpoint (ad esempio:
https://spegridsite0520.azurewebsites.net/api/updates
) come illustrato nell'esempio seguente e selezionare Conferma selezione.Nella pagina Crea sottoscrizione selezionare Crea.
Inviare eventi all'argomento
A questo punto, inviare un evento di esempio all'argomento dello spazio dei nomi seguendo la procedura descritta in questa sezione.
Dichiarare le variabili
Avviare Cloud Shell nel portale di Azure. Passare a Bash.
Eseguire il comando seguente per dichiarare una variabile per contenere il nome del gruppo di risorse. Sostituire
RESOUREGROUPNAME
con il nome del gruppo di risorse di Azure.resource_group=RESOURCEGROUPNAME
In Cloud Shell eseguire il comando seguente per dichiarare una variabile che contenga il nome dello spazio dei nomi. Sostituire
NAMESPACENAME
con il nome dello spazio dei nomi di Griglia di eventi.namespace=NAMESPACENAME
Eseguire il comando seguente per dichiarare una variabile per contenere il valore della chiave di accesso annotato in precedenza. Sostituire
ACCESSKEY
con il valore della chiave di accesso allo spazio dei nomi di Griglia di eventi.key=ACCESSKEY
In Cloud Shell eseguire il comando seguente per dichiarare una variabile che contenga il nome dello spazio dei nomi.
topic=TOPICNAME
Pubblicare un evento
Recuperare il nome host dello spazio dei nomi. Verrà usato per comporre l'endpoint HTTP dello spazio dei nomi a cui inviare gli eventi. Le operazioni seguenti sono state disponibili per la prima volta con la versione dell'API
2023-06-01-preview
. È anche possibile ottenere il nome host dalla pagina Panoramica dello spazio dei nomi di Griglia di eventi nel portale di Azure.publish_operation_uri="https://"$(az eventgrid namespace show -g $resource_group -n $namespace --query "topicsConfiguration.hostname" --output tsv)"/topics/"$topic:publish?api-version=2023-06-01-preview
Creare un evento di esempio conforme a CloudEvents:
event=' { "specversion": "1.0", "id": "'"$RANDOM"'", "type": "com.yourcompany.order.ordercreatedV2", "source" : "/mycontext", "subject": "orders/O-234595", "time": "'`date +%Y-%m-%dT%H:%M:%SZ`'", "datacontenttype" : "application/json", "data":{ "orderId": "O-234595", "url": "https://yourcompany.com/orders/o-234595"}} '
L'elemento
data
è il payload dell'evento. Questo campo accetta qualsiasi JSON ben formato. Per ulteriori informazioni sulle proprietà, note anche come attributi di contesto, che è possibile includere in un evento, vedere le specifiche di CloudEvents.Usare CURL per inviare l'evento all'argomento. CURL è un'utilità che invia richieste HTTP.
curl -X POST -H "Content-Type: application/cloudevents+json" -H "Authorization:SharedAccessKey $key" -d "$event" $publish_operation_uri
Verificare che il Visualizzatore Griglia di eventi di Azure abbia ricevuto l'evento
Verificare che l'app Web Visualizzatore Griglia di eventi di Azure mostri gli eventi ricevuti da Griglia di eventi.
Contenuto correlato
In questa guida introduttiva è stato usato un webhook come gestore eventi. Per una guida introduttiva che usa un hub eventi di Azure come gestore eventi, vedere Distribuire eventi a Hub eventi di Azure usando gli argomenti dello spazio dei nomi.