Condividi tramite


Avvio rapido: Instradare eventi personalizzati all'endpoint Web con l'interfaccia della riga di comando di Azure e Griglia di eventi

In questo articolo si usa l'interfaccia della riga di comando di Azure per creare un argomento personalizzato in Griglia di eventi di Azure, sottoscrivere l'argomento personalizzato e attivare l'evento per visualizzare il risultato.

Nota

Se non si ha Griglia di eventi di Azure, vedere What's Griglia di eventi di Azure to get an overview of the service before through this tutorial (Cosa Griglia di eventi di Azure per ottenere una panoramica del servizio prima di eseguire questa esercitazione.

In genere, si inviano eventi a un endpoint che elabora i dati dell'evento e intraprende azioni. Per maggiore semplicità, tuttavia, in questo articolo gli eventi vengono inviati a un'app Web che raccoglie e visualizza i messaggi.

Al termine, i dati degli eventi saranno stati inviati all'app Web.

Screenshot che mostra un campione di Visualizzatore Griglia di eventi con un evento campione.

Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.

Prerequisiti

  • Questo articolo richiede la versione 2.0.70 o successiva dell'interfaccia della riga di comando di Azure. Se si usa Azure Cloud Shell, la versione più recente è già installata.

Creare un gruppo di risorse

Gli argomenti della 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 crea un gruppo di risorse denominato gridResourceGroup nella località westus2. Se si seleziona Prova, si vedrà la finestra Azure Cloud Shell nel riquadro di destra. Quindi, selezionare Copia per copiare il comando e incollarlo nella finestra Azure Cloud Shell e premere INVIO per eseguire il comando. Cambiare il nome del gruppo di risorse e la posizione, se del caso.

az group create --name gridResourceGroup --location westus2

Abilitare il provider di risorse di Griglia di eventi

  1. 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
    
  2. 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. L'esempio seguente crea l'argomento personalizzato nel gruppo di risorse usando Bash in Azure Cloud Shell. Sostituire <your-topic-name> con un nome univoco per l'argomento. Il nome dell'argomento personalizzato deve essere univoco perché fa parte della voce Domain Name System (DNS). Deve inoltre essere un nome di lunghezza compresa tra 3 e 50 caratteri, contenente solo valori compresi tra a e z, A e Z, 0 e 9 e "-".

  1. Copiare il comando seguente, specificare un nome per l'argomento e premere INVIO per eseguire il comando.

    topicname=<your-topic-name>
    
  2. Per creare un argomento personalizzato usare il comando az eventgrid topic create.

    az eventgrid topic create --name $topicname -l westus2 -g gridResourceGroup
    

Creare un endpoint del messaggio

Prima di sottoscrivere l'argomento personalizzato, 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.

  1. Copiare il comando seguente, specificare un nome per l'app Web (campione di Visualizzatore Griglia di eventi) e premere INVIO per eseguire il comando. Sostituire <your-site-name> con un nome univoco per l'app Web. Il nome dell'app Web deve essere univoco perché fa parte della voce DNS.

    sitename=<your-site-name>
    
  2. Eseguire az deployment group create per distribuire l'app Web usando un modello di Azure Resource Manager.

    az deployment group create \
      --resource-group gridResourceGroup \
      --template-uri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/master/azuredeploy.json" \
      --parameters siteName=$sitename hostingPlanName=viewerhost
    

Il completamento della distribuzione può richiedere alcuni minuti. Dopo il completamento della distribuzione, visualizzare l'app Web per assicurarsi che sia in esecuzione. In un Web browser passare a: https://<your-site-name>.azurewebsites.net

Il sito dovrebbe essere visibile senza messaggi attualmente visualizzati.

Sottoscrivere un argomento personalizzato

È possibile sottoscrivere un argomento di Griglia di eventi per indicare a Griglia di eventi gli eventi di cui si vuole tenere traccia e dove inviare tali eventi. L'esempio seguente sottoscrive l'argomento personalizzato creato e passa l'URL dall'app Web come endpoint per la notifica dell'evento.

L'endpoint per l'app Web deve includere il suffisso /api/updates/.

  1. Copiare il comando seguente, sostituire $sitename con il nome dell'app Web creata nel passaggio precedente e premere INVIO per eseguire il comando.

    endpoint=https://$sitename.azurewebsites.net/api/updates
    
  2. Eseguire il comando seguente per ottenere l'ID risorsa dell'argomento creato.

    topicresourceid=$(az eventgrid topic show --resource-group gridResourceGroup --name $topicname --query "id" --output tsv)
    
  3. Eseguire il comando seguente per creare una sottoscrizione all'argomento personalizzato usando l'endpoint.

    az eventgrid event-subscription create \
      --source-resource-id $topicresourceid \
      --name demoViewerSub \
      --endpoint $endpoint      
    

    Visualizzare nuovamente l'app Web e notare che all'app è stato inviato un evento di convalida della sottoscrizione. Selezionare l'icona a forma di occhio per espandere i dati dell'evento. Griglia di eventi invia l'evento di convalida in modo che l'endpoint possa verificare che voglia ricevere i dati dell'evento. L'app Web include il codice per la convalida della sottoscrizione.

    Visualizzare l'evento della sottoscrizione nel visualizzatore Griglia di eventi di Azure

Inviare un evento all'argomento personalizzato

Attivare un evento per vedere come la 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 semplificare questo articolo, si useranno dati di evento di esempio da inviare all'argomento personalizzato. In genere, i dati dell'evento vengono inviati da un'applicazione o un servizio di Azure. L'esempio seguente crea i dati di esempio dell'evento:

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"} ]'

L'elemento data del JSON è il payload dell'evento. Questo campo accetta qualsiasi JSON ben formato. È anche possibile usare il campo oggetto per il filtro e il routing avanzato.

CURL è un'utilità che invia richieste HTTP. In questo articolo CURL viene usato per inviare l'evento all'argomento.

curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint

È stato attivato l'evento e Griglia di eventi ha inviato il messaggio all'endpoint configurato al momento della sottoscrizione. Visualizzare l'app Web per vedere l'evento appena inviato.

[{
  "id": "1807",
  "eventType": "recordInserted",
  "subject": "myapp/vehicles/motorcycles",
  "eventTime": "2017-08-10T21:03:07+00:00",
  "data": {
    "make": "Ducati",
    "model": "Monster"
  },
  "dataVersion": "1.0",
  "metadataVersion": "1",
  "topic": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.EventGrid/topics/{topic}"
}]

Pulire le risorse

Se si intende continuare a usare questo evento o l'app per visualizzare gli eventi, non è necessario pulire le risorse create in questo articolo. In caso contrario, usare il comando seguente per eliminare le risorse create con questo articolo.

az group delete --name gridResourceGroup

Passaggi successivi

Ora che si è appreso come creare argomenti e sottoscrizioni di eventi, è possibile approfondire le operazioni possibili con la griglia di eventi:

Vedere i campioni seguenti per scoprire di più sulla pubblicazione di eventi a e l'utilizzo di eventi da Griglia di eventi usando diversi linguaggi di programmazione.