Guida introduttiva: Instradare eventi personalizzati a un hub eventi usando Griglia di eventi e l'interfaccia della riga di comando di Azure
Griglia di eventi di Azure è un gestore eventi serverless e altamente scalabile che è possibile usare per integrare le applicazioni tramite eventi. Griglia di eventi fornisce eventi ai gestori eventi supportati e Hub eventi di Azure è uno di essi.
In questo argomento di avvio rapido si usa l'interfaccia della riga di comando di Azure per creare un argomento personalizzato di Griglia di eventi e una sottoscrizione di Hub eventi. Si inviano quindi eventi di esempio all'argomento personalizzato e si verifica che tali eventi vengano recapitati a un hub eventi.
Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.
Creare un gruppo di risorse
Gli argomenti di Griglia di eventi sono risorse di Azure e devono essere inseriti in un gruppo di risorse di Azure. Il gruppo di risorse è una raccolta logica in cui vengono distribuite e gestite le risorse di Azure.
Creare un gruppo di risorse con il comando az group create. L'esempio seguente consente di creare un gruppo di risorse denominato gridResourceGroup
nell'area westus2
.
Selezionare Apri Cloud Shell per aprire Azure Cloud Shell nel riquadro destro. Selezionare il pulsante Copia per copiare il comando, incollarlo in Cloud Shell e quindi selezionare il tasto INVIO per eseguire il comando.
az group create --name gridResourceGroup --location westus2
Abilitare il provider di risorse di Griglia di eventi
Se Griglia di eventi non è stato usato in precedenza nella sottoscrizione di Azure, potrebbe essere necessario registrare il provider di risorse di Griglia di eventi. Eseguire il comando seguente per registrare il provider:
az provider register --namespace Microsoft.EventGrid
La registrazione può richiedere qualche secondo. Eseguire il comando seguente per verificare lo stato:
az provider show --namespace Microsoft.EventGrid --query "registrationState"
Quando
registrationState
èRegistered
, è possibile continuare.
Creare un argomento personalizzato
Un argomento di Griglia di eventi fornisce un endpoint definito dall'utente in cui vengono pubblicati gli eventi. Nell'esempio seguente viene creato l'argomento personalizzato nel gruppo di risorse.
Sostituire <TOPIC NAME>
con un nome univoco per l'argomento personalizzato. Il nome dell'argomento Griglia di eventi deve essere univoco perché è rappresentato da una voce di Domain Name System (DNS).
Specificare un nome per l'argomento:
topicname="<TOPIC NAME>"
Eseguire il comando seguente per creare l'argomento:
az eventgrid topic create --name $topicname -l westus2 -g gridResourceGroup
Creare un hub eventi
Prima di sottoscrivere l'argomento personalizzato, creare l'endpoint per il messaggio di evento. Si crea un hub eventi per la raccolta degli eventi.
Specificare un nome univoco per lo spazio dei nomi di Hub eventi:
namespace="<EVENT HUBS NAMESPACE NAME>"
Eseguire i comandi seguenti per creare uno spazio dei nomi di Hub eventi e un hub eventi denominato
demohub
in tale spazio dei nomi:hubname=demohub az eventhubs namespace create --name $namespace --resource-group gridResourceGroup az eventhubs eventhub create --name $hubname --namespace-name $namespace --resource-group gridResourceGroup
Sottoscrivere un argomento personalizzato
Si sottoscrive un argomento della Griglia di eventi per indicare alla griglia di eventi quali sono gli eventi di cui si vuole tenere traccia. L'esempio seguente sottoscrive l'argomento personalizzato creato e passa l'ID risorsa dell'hub eventi per l'endpoint. L'endpoint è in questo formato:
/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.EventHub/namespaces/<NAMESPACE NAME>/eventhubs/<EVENT HUB NAME>
Lo script seguente ottiene l'ID risorsa per l'hub eventi e sottoscrive un argomento della griglia di eventi. Imposta il tipo di endpoint su eventhub
e usa l'ID dell'hub eventi per l'endpoint.
hubid=$(az eventhubs eventhub show --name $hubname --namespace-name $namespace --resource-group gridResourceGroup --query id --output tsv)
topicid=$(az eventgrid topic show --name $topicname -g gridResourceGroup --query id --output tsv)
az eventgrid event-subscription create \
--source-resource-id $topicid \
--name subtoeventhub \
--endpoint-type eventhub \
--endpoint $hubid
L'account che crea la sottoscrizione dell'evento deve avere accesso in scrittura all'hub eventi.
Inviare un evento all'argomento personalizzato
Attivare un evento per vedere come Griglia di eventi distribuisce il messaggio nell'endpoint. Ottenere prima di tutto l'URL e la chiave per l'argomento personalizzato:
endpoint=$(az eventgrid topic show --name $topicname -g gridResourceGroup --query "endpoint" --output tsv)
key=$(az eventgrid topic key list --name $topicname -g gridResourceGroup --query "key1" --output tsv)
Per motivi di semplicità in questo articolo, usare i dati degli eventi di esempio per l'invio all'argomento personalizzato. In genere, i dati dell'evento vengono inviati da un'applicazione o un servizio di Azure.
Lo strumento cURL invia richieste HTTP. In questo articolo viene usato cURL per inviare l'evento all'argomento personalizzato. L'esempio seguente invia tre eventi all'argomento della griglia di eventi:
for i in 1 2 3
do
event='[ {"id": "'"$RANDOM"'", "eventType": "recordInserted", "subject": "myapp/vehicles/motorcycles", "eventTime": "'`date +%Y-%m-%dT%H:%M:%S%z`'", "data":{ "make": "Ducati", "model": "Monster"},"dataVersion": "1.0"} ]'
curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
done
Nel portale di Azure, nella pagina Panoramica per lo spazio dei nomi di Hub eventi, si noti che Griglia di eventi ha inviato questi tre eventi all'hub eventi. Lo stesso grafico viene visualizzato nella pagina Panoramica per l'istanza demohub
di Hub eventi.
In genere, si crea un'applicazione che recupera i messaggi di evento dall'hub eventi. Per altre informazioni, vedi:
- Guida introduttiva alla ricezione di messaggi con Event Processor Host in .NET Standard
- Ricevere eventi da Hub eventi di Azure usando Java
- Ricevere eventi da Hub eventi di Azure usando Apache Storm
Pulire le risorse
Se si intende continuare a usare questo evento, non pulire le risorse create con questo articolo. In caso contrario, usare il comando seguente per eliminare le risorse:
az group delete --name gridResourceGroup
Contenuto correlato
Ora che si è appreso come creare argomenti e sottoscrizioni di eventi, è possibile approfondire le operazioni possibili con la griglia di eventi:
- Informazioni sulla griglia di eventi
- Indirizzare gli eventi di Archiviazione BLOB di Azure a un endpoint Web personalizzato
- Monitorare le modifiche alla macchina virtuale con la griglia di eventi di Azure e le app per la logica
- Trasmettere Big Data a un data warehouse
Per informazioni sulla pubblicazione e l'utilizzo di eventi in Griglia di eventi usando vari linguaggi di programmazione, vedere gli esempi seguenti: