Pubblica eventi su argomenti personalizzati di Griglia di eventi di Azure usando le chiavi di accesso

Un argomento personalizzato di Event Grid è un endpoint a cui le tue applicazioni inviano i propri eventi, così che Event Grid possa instradare quegli eventi agli abbonati interessati. Questo articolo ti mostra come pubblicare eventi su un argomento personalizzato utilizzando chiavi di accesso, che autenticano le tue richieste senza dover configurare Microsoft Entra ID. Ottieni l'endpoint dell'argomento e la chiave di accesso, formatti un payload evento, invii un evento di esempio e rivedi la risposta.

L'Accordo sul Livello di Servizio (SLA) si applica solo ai post che corrispondono al formato previsto.

Prerequisiti

Note

L'autenticazione Microsoft Entra offre un supporto migliore rispetto all'autenticazione con chiave di accesso o token con firma di accesso condivisa (SAS). Utilizzando l'autenticazione Microsoft Entra, il provider di identità Microsoft Entra valida l'identità, così non gestisci le chiavi nel tuo codice. Benefici anche di funzionalità di sicurezza integrate nella Microsoft Identity Platform, come l'Accesso Condizionale, che aiutano a migliorare la sicurezza della tua applicazione. Per altre informazioni, vedere Autenticare i client di pubblicazione con Microsoft Entra ID.

Ottenere l'endpoint del topic

Per pubblicare eventi su un argomento personalizzato, invia una richiesta HTTP POST utilizzando il seguente formato URI: https://<topic-endpoint>?api-version=2018-01-01. Ad esempio, https://exampletopic.westus2-1.eventgrid.azure.net/api/events?api-version=2018-01-01 è un URI valido. Per ottenere l'endpoint per un argomento personalizzato, usa il portale Azure, interfaccia della riga di comando di Azure o Azure PowerShell.

Trova il punto finale dell'argomento nella scheda Panoramica della pagina Argomenti della Griglia Eventi nel portale Azure.

Screenshot della pagina dell'argomento di Griglia di eventi nel portale di Azure con l'endpoint dell'argomento evidenziato.

Ottenere la chiave di accesso

Nella richiesta includere un valore intestazione denominato aeg-sas-key che contiene una chiave per l'autenticazione. Ad esempio, aeg-sas-key: xxxxxxxxxxxxxxxxxxxxxxx è un valore intestazione valido. Per ottenere la chiave per un argomento personalizzato, usa il portale Azure, interfaccia della riga di comando di Azure o Azure PowerShell.

Per ottenere la chiave di accesso per l'argomento personalizzato, seleziona la scheda Tasti di accesso nella pagina Argomenti della Griglia Eventi nel portale Azure.

Screenshot che mostra la scheda Chiavi di accesso della pagina dell'argomento di Griglia di eventi nel portale di Azure.

Formattare il payload dell'evento

Formatta ogni evento come oggetto JSON. I campi di livello superiore sono gli stessi degli eventi standard definiti da risorse, e la data proprietà contiene le proprietà uniche per il tuo argomento personalizzato. Come editore, definisci il contenuto dell'oggetto data . Per una descrizione di ogni proprietà, vedi Griglia di eventi di Azure event schema.

[
  {
    "id": string,
    "eventType": string,
    "subject": string,
    "eventTime": string-in-date-time-format,
    "data":{
      object-unique-to-each-publisher
    },
    "dataVersion": string
  }
]

Tieni a mente questi limiti di dimensione quando costruisci il carico utile:

  • L'array di eventi può avere una dimensione totale fino a 1 MB.
  • La dimensione massima per un singolo evento è di 1 MB. Gli eventi superiori a 64 KB comportano cariche in incrementi di 64 KB.
  • Un lotto può contenere un massimo di 5.000 eventi.

Il seguente esempio mostra un payload di evento valido:

[{
  "id": "1807",
  "eventType": "recordInserted",
  "subject": "myapp/vehicles/motorcycles",
  "eventTime": "2017-08-10T21:03:07+00:00",
  "data": {
    "make": "Ducati",
    "model": "Monster"
  },
  "dataVersion": "1.0"
}]

Inviare un evento di esempio

Questa sezione illustra come inviare un evento di esempio all'argomento personalizzato.

  1. Nel portale di Azure, avviare Cloud Shell.

  2. In Cloud Shell eseguire i comandi da Azure PowerShell o dall'interfaccia della riga di comando di Azure nella sessione di Bash o PowerShell.

    Screenshot che mostra Cloud Shell nel portale di Azure.

Esaminare la risposta

Dopo aver pubblicato sul punto di riferimento dell'argomento, ricevi una risposta. La risposta è un codice di risposta HTTP standard. Alcune risposte comuni sono:

Risultato Risposta
Operazione completata 200 Va bene
I dati di evento hanno un formato non corretto 400 - Richiesta non valida
Chiave di accesso non valida 401 - Non autorizzato
Endpoint non corretto 404 Non trovato
Una matrice o un evento supera i limiti delle dimensioni 413 Payload Too Large (413 Payload troppo grande)

Per gli errori, il corpo del messaggio utilizza il seguente formato:

{
    "error": {
        "code": "<HTTP status code>",
        "message": "<description>",
        "details": [{
            "code": "<HTTP status code>",
            "message": "<description>"
    }]
  }
}