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

In questo quickstart, usi la interfaccia della riga di comando di Azure per creare un argomento personalizzato in Griglia di eventi di Azure, iscriverti all'argomento personalizzato e attivare un evento di esempio per visualizzare il risultato.

In genere, si inviano eventi a un endpoint che elabora i dati dell'evento e intraprende azioni. Tuttavia, per semplificare questo avvio rapido, invii eventi di esempio a un'app web che raccoglie e visualizza i messaggi. Quando finisci, vedi i dati dell'evento nell'app web, come mostrato nell'immagine seguente:

Schermata che mostra l'esempio del visualizzatore di Griglia di eventi con un evento di esempio.

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

Prerequisiti

  • Questo avvio rapido 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.
  • Se sei nuovo su Griglia di eventi di Azure, consulta What's Griglia di eventi di Azure per una panoramica del servizio prima di iniziare questo quickstart.

Creare un gruppo di risorse

Gli argomenti Event Grid sono risorse Azure che devi inserire in un gruppo di risorse Azure. Il gruppo risorse è una raccolta logica in cui si distribuisce e si gestiscono 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. Cambia il nome del gruppo di risorse e la località se vuoi.

az group create --name gridResourceGroup --location westus2

Abilitare il provider di risorse di Event Grid

  1. Se è la prima volta che si usa Griglia di eventi 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. Il seguente esempio crea l'argomento personalizzato nel tuo 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). Inoltre, deve essere compreso tra 3 e 50 caratteri e contenere solo i valori a-z, A-Z, 0-9 e "-"

  1. Copia il seguente comando, specifica un nome per l'argomento e seleziona 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
    

Crea un endpoint di messaggio

Prima di sottoscrivere l'argomento personalizzato, creare l'endpoint per il messaggio di evento. In genere, l'endpoint esegue azioni in base ai dati dell'evento. Per semplificare questo avvio rapido, distribuisci un'app web preimpostata che mostri i messaggi dell'evento. La soluzione distribuita include un piano di servizio app, un'app Web del servizio app e codice sorgente da GitHub.

  1. Copia il seguente comando, specifica un nome per l'app web (esempio Event Grid Viewer) e seleziona 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. Esegui 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/main/azuredeploy.json" \
      --parameters siteName=$sitename hostingPlanName=viewerhost
    

Il completamento della distribuzione può richiedere alcuni minuti. Al termine del rilascio, verificare l'app Web per confermare che sia funzionante. In un browser Web, passare a: https://<your-site-name>.azurewebsites.net

Dovresti vedere il sito senza messaggi 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 esegue la sottoscrizione al topic personalizzato che hai creato e passa l'URL della tua app Web come endpoint per le notifiche degli eventi.

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

  1. Copia il comando seguente, sostituisci $sitename con il nome dell'app web che hai creato nel passaggio precedente e seleziona 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
    

    Visualizza di nuovo l'app Web e nota che le è 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.

    Screenshot che mostra il campione di Event Grid Viewer con un evento di validazione dell'abbonamento.

Inviare un evento all'argomento personalizzato

Attivare un evento per vedere come la Griglia di eventi distribuisce il messaggio nell'endpoint. Per prima cosa, ottieni 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 quickstart, usa dati di esempio per l'evento da inviare all'argomento personalizzato. In genere, un'applicazione o un servizio di Azure invia i dati dell'evento. 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 questa guida introduttiva, usa cURL per inviare l'evento al topic.

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

L'evento è stato attivato e Griglia di eventi ha inviato il messaggio all'endpoint configurato durante la sottoscrizione. Visualizza la tua app web per vedere l'evento che hai 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 intendi continuare a lavorare con questo evento o con l'app Visualizzatore eventi, non eliminare le risorse che hai creato in questa guida introduttiva. Altrimenti, usa il seguente comando per eliminare le risorse che hai creato in questo avvio rapido.

az group delete --name gridResourceGroup --yes --no-wait

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

Per imparare a pubblicare eventi e consumare eventi da Event Grid in diversi linguaggi di programmazione, consulta i seguenti esempi: