Veröffentlichen Sie Ereignisse in benutzerdefinierten Azure Event Grid-Themen mit Zugangsschlüsseln

Ein benutzerdefiniertes Event Grid Thema ist ein Endpunkt, an den Ihre Anwendungen eigene Events senden, sodass Event Grid diese Events an interessierte Abonnenten weiterleiten kann. Dieser Artikel zeigt Ihnen, wie Sie Ereignisse in einem benutzerdefinierten Thema veröffentlichen können, indem Sie Zugangsschlüssel verwenden, die Ihre Anfragen authentifizieren, ohne eine Microsoft Entra ID einzurichten. Du erhältst den Topic-Endpunkt und den Zugriffsschlüssel, formatierst die Payload eines Ereignisses, sendest ein Beispielereignis und überprüfst die Antwort.

Die Service Level Agreement (SLA) gilt nur für Beiträge, die dem erwarteten Format entsprechen.

Voraussetzungen

Hinweis

Die Microsoft Entra-Authentifizierung bietet eine bessere Authentifizierungsunterstützung als die Token-Authentifizierung mit Zugangsschlüssel oder Shared Access Signature (SAS). Durch die Verwendung der Microsoft Entra-Authentifizierung validiert der Microsoft Entra-Identitätsanbieter die Identität, sodass Sie keine Schlüssel in Ihrem Code verwalten müssen. Sie profitieren auch von Sicherheitsfunktionen, die in die Microsoft Identity Platform integriert sind, wie z. B. Conditional Access, die die Sicherheit Ihrer Anwendung verbessern. Weitere Informationen finden Sie unter Authentifizieren von Veröffentlichungsclients mit Microsoft Entra ID.

Abrufen des Themenendpunkts

Um Ereignisse an einem benutzerdefinierten Thema zu veröffentlichen, senden Sie eine HTTP-POST-Anfrage mit folgendem URI-Format: https://<topic-endpoint>?api-version=2018-01-01. https://exampletopic.westus2-1.eventgrid.azure.net/api/events?api-version=2018-01-01 ist beispielsweise ein gültiger URI. Um den Endpunkt für ein benutzerdefiniertes Thema zu erhalten, verwenden Sie das Azure Portal, Azure CLI oder Azure PowerShell.

Finden Sie den Endpunkt des Themas im Übersichtstab der Seite Event Grid Topic im Azure-Portal.

Screenshot der Themenseite

Zugriffsschlüssel abrufen

Schließen Sie einen Headerwert namens aeg-sas-key in die Anforderung ein, der einen Schlüssel für die Authentifizierung enthält. Ein gültiger Headerwert ist beispielsweise aeg-sas-key: xxxxxxxxxxxxxxxxxxxxxxx. Um den Schlüssel für ein benutzerdefiniertes Thema zu erhalten, verwenden Sie das Azure Portal, Azure CLI oder Azure PowerShell.

Um den Zugangsschlüssel für das benutzerdefinierte Thema zu erhalten, wählen Sie den Reiter Zugriffsschlüssel auf der Seite Event Grid Topic im Azure-Portal.

Screenshot der Registerkarte „Zugriffstasten“ auf der Themenseite „Ereignisraster“ im Azure-Portal.

Formatieren der Eventnutzlast

Formatiere jedes Ereignis als JSON-Objekt. Die obersten Felder sind identisch mit den Standard-Resource-Defined Events, und die data Eigenschaft enthält die Eigenschaften, die einzigartig für dein individuelles Thema sind. Als Verlag definieren Sie den Inhalt des data Objekts. Für eine Beschreibung jeder Eigenschaft siehe 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
  }
]

Beachten Sie diese Größenbeschränkungen beim Bau der Nutzlast:

  • Das Ereignisarray kann eine Gesamtgröße von bis zu 1 MB haben.
  • Die maximale Größe für ein einzelnes Ereignis beträgt 1 MB. Für Ereignisse über 64 KB werden Gebühren in Schritten von 64 KB berechnet.
  • Ein Batch kann maximal 5.000 Ereignisse enthalten.

Das folgende Beispiel zeigt eine gültige Ereignisnutzlast:

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

Senden eines Beispielereignisses

In diesem Abschnitt wird gezeigt, wie Sie ein Beispielereignis an das benutzerdefinierte Thema senden.

  1. Starten Sie im Azure-Portal Cloud Shell.

  2. Führen Sie in der Cloud Shell die Befehle aus der Azure PowerShell- oder Azure CLI in der Bash- oder PowerShell-Sitzung aus.

    Screenshot der Cloud Shell im Azure-Portal.

Überprüfen der Antwort

Nachdem du am Topic-Endpunkt gepostet hast, erhältst du eine Antwort. Die Antwort ist ein HTTP-Standardantwortcode. Einige häufige Antworten lauten:

Ergebnis Antwort
Erfolg 200 OK
Fehlerhaftes Format der Ereignisdaten 400 – Ungültige Anforderung
Ungültiger Zugriffsschlüssel 401 – Nicht autorisiert
Falscher Endpunkt 404 – Nicht gefunden
Array oder Ereignis überschreitet die Größenbeschränkungen 413 Nutzlast zu groß

Bei Fehlern hat der Nachrichtentext das folgende Format:

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