Condividi tramite


Guida introduttiva: Inviare eventi personalizzati all'endpoint Web con il portale di Azure e l'Griglia di eventi di Azure

In questa guida introduttiva si crea un argomento, si crea una sottoscrizione a tale argomento usando un endpoint webhook, si attiva un evento di esempio e quindi si visualizza il risultato. In genere, si inviano eventi a un endpoint che elabora i dati dell'evento e intraprende azioni. Per maggiore semplicità, tuttavia, in questo tutorial, gli eventi vengono inviati a un'app Web che raccoglie e visualizza i messaggi.

Prerequisiti

  • Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.
  • Se non si ha familiarità con Griglia di eventi di Azure, vedere Panoramica di Griglia di eventi.

Registrare il provider di risorse di Griglia di eventi

Se non si è usato Griglia di eventi prima, sarà necessario registrare il provider di risorse Griglia di eventi. Se è già stato usato Griglia di eventi, passare alla sezione successiva.

Nel portale di Azure seguire questa procedura:

  1. Nel menu a sinistra, selezionare Sottoscrizioni.

  2. Selezionare la sottoscrizione di Griglia di eventi che si vuole usare dall'elenco delle sottoscrizioni.

  3. Nella pagina Sottoscrizione selezionare Provider di risorse in Impostazioni nel menu a sinistra.

  4. Cercare Microsoft.EventGrid e verificare che lo stato sia non registrato.

  5. Selezionare Microsoft.EventGrid nell'elenco dei provider.

  6. Selezionare Registra sulla barra dei comandi.

    Immagine che mostra la registrazione del provider Microsoft.EventGrid con la sottoscrizione di Azure.

  7. Aggiornare per assicurarsi che lo stato di Microsoft.EventGrid sia cambiato in Registrato.

    Immagine che mostra la corretta registrazione del provider Microsoft.EventGrid con la sottoscrizione di Azure.

Creare un argomento personalizzato

Un argomento di Griglia di eventi fornisce un endpoint definito dall'utente in cui vengono pubblicati gli eventi.

  1. Accedi al portale di Azure.

  2. Nella barra di ricerca dell'argomento digitare Argomenti di Griglia di eventi e quindi selezionare Argomenti di Griglia di eventi dall'elenco a discesa.

    Screenshot che mostra la barra di ricerca delle porte di Azure per cercare gli argomenti di Griglia di eventi.

  3. Nella pagina Argomenti di Griglia di eventi selezionare + Crea sulla barra degli strumenti.

    Screenshot che mostra il pulsante Crea argomento nella pagina argomenti di Griglia di eventi.

  4. Nella pagina Crea argomento procedere come segue:

    1. Selezionare la sottoscrizione di Azure.

    2. Selezionare un gruppo di risorse esistente oppure selezionare Crea nuovo e immettere un nome per il gruppo di risorse.

    3. Specificare un nome univoco per l'argomento personalizzato. Il nome dell'argomento deve essere univoco perché è rappresentato da una voce DNS. Non usare il nome visualizzato nell'immagine In alternativa, creare un nome personalizzato di lunghezza compresa tra 3 e 50 caratteri e contenente solo valori compresi tra a e z, A e Z, 0 e 9 e -.

    4. Selezionare una posizione per l'argomento di Griglia di eventi.

    5. Selezionare Rivedi e crea nella parte inferiore della pagina.

      Pagina Crea argomento

    6. Nella scheda Rivedi e crea della pagina Crea argomento selezionare Crea.

      Verificare le impostazioni e selezionare Crea

  5. Al termine della distribuzione, selezionare Vai alla risorsa per passare alla pagina Argomento di Griglia di eventi per l'argomento. Tenere aperta questa pagina. Verrà usata in seguito nell'argomento di avvio rapido.

    Screenshot che mostra la home page dell'argomento griglia di eventi.

    Nota

    Per semplificare la guida introduttiva, si userà solo la pagina Informazioni di base per creare un argomento. Per informazioni dettagliate sulla configurazione delle impostazioni di residenza dei dati, sicurezza e rete in altre pagine della procedura guidata, vedere Creare un argomento personalizzato.

Creare un endpoint del messaggio

Prima di creare una sottoscrizione per l'argomento personalizzato, creare un 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. Nella pagina dell'articolo selezionare Distribuisci in Azure per distribuire la soluzione nella sottoscrizione. Nel portale di Azure specificare i valori per i parametri.

    Pulsante per distribuire il modello di Resource Manager in Azure.

  2. Nella pagina Distribuzione personalizzata procedere come segue:

    1. Per Gruppo di risorse selezionare un gruppo di risorse esistente o creare un gruppo di risorse.

    2. Per Nome sito immettere un nome per l'app Web.

    3. Per Nome piano di hosting immettere un nome per il piano del servizio app da usare per l'hosting dell'app Web.

    4. Selezionare Rivedi e crea.

      Screenshot che mostra la pagina Distribuzione personalizzata.

  3. Nella pagina Rivedi e crea selezionare Crea.

  4. Il completamento della distribuzione può richiedere alcuni minuti. Selezionare Avvisi (icona della campana) nel portale e quindi Vai al gruppo di risorse.

    Screenshot che mostra il messaggio di distribuzione riuscito con un collegamento per passare al gruppo di risorse.

  5. Nell'elenco delle risorse della pagina Gruppo di risorse selezionare l'app Web (contosoegriviewer nell'esempio seguente) creata.

    Screenshot che mostra la pagina Gruppo di risorse con le risorse distribuite.

  6. 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.

    Screenshot che mostra la pagina servizio app con il collegamento al sito evidenziato.

  7. Verificare che venga visualizzato il sito ma che al suo interno non sono stati ancora pubblicati eventi.

    Screenshot che mostra l'app di esempio Visualizzatore Griglia di eventi.

Sottoscrivere eventi per un argomento personalizzato

Si sottoscrive un argomento di Griglia di eventi per indicare di quali eventi si vuole tenere traccia e dove inviarli.

  1. Nella pagina Argomento di Griglia di eventi relativa all'argomento personalizzato selezionare + Sottoscrizione di eventi sulla barra degli strumenti.

    Screenshot che mostra il pulsante Aggiungi sottoscrizione di eventi sulla barra degli strumenti.

  2. Nella pagina Crea sottoscrizione di eventi procedere come segue:

    1. Immettere un nome per la sottoscrizione di eventi.

    2. Selezionare Webhook per Tipo di endpoint.

    3. Scegliere Seleziona endpoint.

      Specificare i valori della sottoscrizione di eventi

    4. Per l'endpoint del webhook, specificare l'URL dell'app Web e aggiungere api/updates all'URL della home page. Selezionare Confermare la selezione.

      Specificare l'URL endpoint

    5. Nella pagina Crea sottoscrizione di eventi selezionare Crea.

  3. 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.

    Screenshot dell'app Visualizzatore Griglia di eventi con l'evento Subscription Validated.

Inviare un evento all'argomento

A questo punto, attivare un evento per vedere come la griglia di eventi distribuisce il messaggio nell'endpoint. Usare l'interfaccia della riga di comando di Azure o PowerShell per inviare un evento di test all'argomento personalizzato. In genere, i dati dell'evento vengono inviati da un'applicazione o un servizio di Azure.

Il primo esempio usa l'interfaccia della riga di comando di Azure. Ottiene l'URL e la chiave per l'argomento personalizzato e i dati dell'evento di esempio. Usare il nome dell'argomento personalizzato per <topic name>. Verranno creati i dati dell'evento di esempio. 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.

Interfaccia della riga di comando di Azure

  1. Nel portale di Azure selezionare Cloud Shell. Cloud Shell verrà aperto nel riquadro inferiore del Web browser.

    Screnshot che mostra la selezione del pulsante Cloud Shell.

  2. Se Cloud Shell apre una sessione di PowerShell, selezionare Passa a Bash nell'angolo superiore sinistro della finestra di Cloud Shell. In caso contrario, continuare con il passaggio successivo.

    Screenshot che mostra Cloud Shell con Bash selezionato nell'angolo superiore sinistro.

  3. Eseguire il comando seguente per ottenere l’endpoint per l’argomento: Dopo aver copiato e incollato il comando, aggiornare il nome dell'argomento e il nome del gruppo di risorse prima di eseguirlo. Gli eventi di esempio vengono pubblicati in questo endpoint argomento.

    endpoint=$(az eventgrid topic show --name <topic name> -g <resource group name> --query "endpoint" --output tsv)
    
  4. Eseguire il comando seguente per ottenere la chiave per l’argomento personalizzato: Dopo aver copiato e incollato il comando, aggiornare il nome dell'argomento e il nome del gruppo di risorse prima di eseguirlo. Si tratta della chiave primaria dell'argomento di Griglia di eventi. Per ottenere questa chiave dal portale di Azure, passare alla scheda Chiavi di accesso della pagina Argomento di Griglia di eventi. Per poter pubblicare un evento in un argomento personalizzato, è necessaria la chiave di accesso.

    key=$(az eventgrid topic key list --name <topic name> -g <resource group name> --query "key1" --output tsv)
    
  5. Copiare l'istruzione seguente con la definizione di evento e premere INVIO.

    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"} ]'
    
  6. Eseguire il comando Curl seguente per pubblicare l'evento: nel comando l'intestazione aeg-sas-key è impostata sulla chiave di accesso ottenuta in precedenza.

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

Azure PowerShell

Il secondo esempio usa PowerShell per eseguire passaggi simili.

  1. Nel portale di Azure selezionare Cloud Shell (in alternativa, passare a https://shell.azure.com/). Cloud Shell verrà aperto nel riquadro inferiore del Web browser.

    Icona per la selezione di Cloud Shell

  2. In Cloud Shell selezionare PowerShell nell'angolo in alto a sinistra della finestra Cloud Shell. Vedere l'esempio di immagine di finestra Cloud Shell nella sezione sull'interfaccia della riga di comando di Azure.

  3. Impostare le variabili seguenti. Dopo aver copiato e incollato ogni singolo comando, aggiornare il nome dell'argomento e il nome del gruppo di risorse prima di eseguirlo:

    Gruppo di risorse:

    $resourceGroupName = "<resource group name>"
    

    Nome dell'argomento di Griglia di eventi:

    $topicName = "<topic name>"
    
  4. Eseguire i comandi seguenti per ottenere l'endpoint e le chiavi per l'argomento:

    $endpoint = (Get-AzEventGridTopic -ResourceGroupName $resourceGroupName -Name $topicName).Endpoint
    $keys = Get-AzEventGridTopicKey -ResourceGroupName $resourceGroupName -Name $topicName
    
  5. Preparare l'evento. Copiare ed eseguire le istruzioni nella finestra Cloud Shell.

    $eventID = Get-Random 99999
    
    #Date format should be SortableDateTimePattern (ISO 8601)
    $eventDate = Get-Date -Format s
    
    #Construct body using Hashtable
    $htbody = @{
        id= $eventID
        eventType="recordInserted"
        subject="myapp/vehicles/motorcycles"
        eventTime= $eventDate   
        data= @{
            make="Ducati"
            model="Monster"
        }
        dataVersion="1.0"
    }
    
    #Use ConvertTo-Json to convert event body from Hashtable to JSON Object
    #Append square brackets to the converted JSON payload since they are expected in the event's JSON payload syntax
    $body = "["+(ConvertTo-Json $htbody)+"]"
    
  6. Usare il cmdlet Invoke-WebRequest per inviare l'evento.

    Invoke-WebRequest -Uri $endpoint -Method POST -Body $body -Headers @{"aeg-sas-key" = $keys.Key1}
    

Verificare nel visualizzatore Griglia di eventi

È 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.

Visualizzatore Griglia di eventi

Pulire le risorse

Se si intende continuare a usare questo evento, non è necessario pulire le risorse create con questo articolo. In caso contrario, eliminare le risorse create in questo articolo.

  1. Selezionare Gruppi di risorse nel menu sinistro. Se l'opzione non viene visualizzata nel menu sinistro, selezionare Tutti i servizi nel menu sinistro e quindi Gruppi di risorse.

    Screenshot che mostra la pagina Gruppi di risorse.

  2. Selezionare il gruppo di risorse per avviare la pagina Gruppo di risorse.

  3. Selezionare Elimina gruppo di risorse sulla barra degli strumenti.

  4. Confermare l'eliminazione immettendo il nome del gruppo di risorse e selezionare Elimina.

    L'altro gruppo di risorse visualizzato nella pagina è stato creato e usato dalla finestra Cloud Shell. Eliminarlo se non si prevede di usare la finestra Cloud Shell in seguito.

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