Publiceer gebeurtenissen naar aangepaste Azure Event Grid-topics met toegangssleutels

Een Event Grid custom topic is een eindpunt waarnaar je applicaties hun eigen events sturen, zodat Event Grid die events kan doorsturen naar geïnteresseerde abonnees. Dit artikel laat zien hoe je gebeurtenissen kunt publiceren naar een aangepast onderwerp door toegangssleutels te gebruiken, die je verzoeken authenticeren zonder Microsoft Entra ID in te stellen. Je krijgt het topic-endpoint en toegangssleutel, formatteert een event payload, stuurt een voorbeeldevent en bekijkt het antwoord.

De Service Level Agreement (SLA) is alleen van toepassing op berichten die voldoen aan het verwachte formaat.

Prerequisites

Notitie

Microsoft Entra-authenticatie biedt betere authenticatie-ondersteuning dan toegangssleutel- of gedeelde toegangshandtekening (SAS) tokenauthenticatie. Door gebruik te maken van Microsoft Entra-authenticatie valideert de Microsoft Entra-identiteitsprovider de identiteit, zodat je geen sleutels in je code hoeft te hanteren. Je profiteert ook van beveiligingsfuncties die zijn ingebouwd in het Microsoft identity platform, zoals Conditional Access, die de beveiliging van je applicatie verbeteren. Zie Publicerende clients verifiëren met behulp van Microsoft Entra ID voor meer informatie.

Het onderwerpeindpunt ophalen

Om gebeurtenissen te publiceren naar een aangepast onderwerp, stuur je een HTTP POST-verzoek met het volgende URI-formaat: https://<topic-endpoint>?api-version=2018-01-01. Een geldige URI is bijvoorbeeld: https://exampletopic.westus2-1.eventgrid.azure.net/api/events?api-version=2018-01-01. Om het eindpunt voor een aangepast onderwerp te krijgen, gebruik je het Azure portal, Azure CLI of Azure PowerShell.

Vind het eindpunt van het onderwerp op het tabblad Overzicht van de Event Grid Topic-pagina in het Azure-portaal.

Schermopname van de Event Grid-onderwerppagina in Azure Portal met het onderwerpeindpunt gemarkeerd.

De toegangssleutel ophalen

Neem in de aanvraag een headerwaarde aeg-sas-key op die een sleutel voor verificatie bevat. Een geldige headerwaarde is aeg-sas-key: xxxxxxxxxxxxxxxxxxxxxxxbijvoorbeeld . Om de sleutel voor een aangepast onderwerp te krijgen, gebruik je het Azure-portaal, Azure CLI of Azure PowerShell.

Om de toegangssleutel voor het aangepaste onderwerp te krijgen, selecteer je het tabblad Toegangssleutels op de pagina Event Grid Topic in het Azure-portaal.

Schermopname van het tabblad Toegangssleutels van de Event Grid-onderwerppagina in Azure Portal.

Formatteren van de gebeurtenispayload

Formatteer elk event als een JSON-object. De top-level velden zijn hetzelfde als standaard resource-defined events, en de data eigenschap bevat de eigenschappen die uniek zijn voor jouw aangepaste onderwerp. Als uitgever definieer je de inhoud van het data object. Voor een beschrijving van elke eigenschap, zie Azure Event Grid event schema.

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

Houd deze groottelimieten in gedachten bij het bouwen van de payload:

  • De event array kan een totale grootte hebben van maximaal 1 MB.
  • De maximale grootte voor een enkel event is 1 MB. Voor gebeurtenissen groter dan 64 KB worden kosten in rekening gebracht per 64 KB.
  • Een batch kan maximaal 5.000 gebeurtenissen bevatten.

Het volgende voorbeeld laat een geldige eventpayload zien:

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

Een voorbeeldgebeurtenis verzenden

In deze sectie ziet u hoe u een voorbeeldgebeurtenis naar het aangepaste onderwerp verzendt.

  1. Start Cloud Shell in het Azure-portal.

  2. Voer in Cloud Shell de opdrachten uit vanuit Azure PowerShell of Azure CLI in de Bash- of PowerShell-sessie.

    Schermopname waarop de Cloud Shell in het Azure-portal te zien is.

Het antwoord controleren

Nadat je op het topic-eindpunt hebt gepost, ontvang je een reactie. Het antwoord is een standaard HTTP-antwoordcode. Enkele veelvoorkomende antwoorden zijn:

Resultaat Reactie
Geslaagd 200 Akkoord
Gebeurtenisgegevens hebben een onjuiste indeling 400 Ongeldig verzoek
Ongeldige toegangssleutel 401 Onbevoegd
Onjuist eindpunt 404 Niet gevonden
Matrix of gebeurtenis overschrijdt de groottelimieten 413 Nettolading te groot

Voor fouten gebruikt het berichtgedeelte het volgende formaat:

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