Freigeben über


Veröffentlichen von Ereignissen in einem benutzerdefinierten Azure Event Grid-Thema mithilfe von Zugriffsschlüsseln

In diesem Artikel wird beschrieben, wie Sie unter Verwendung eines Zugriffsschlüssels ein Ereignis in einem benutzerdefinierten Thema posten. Es wird außerdem das Format von Postings und Ereignisdaten gezeigt. Die Vereinbarung zum Servicelevel (SLA) gilt nur für Postings, die dem erwarteten Format entsprechen.

Hinweis

Microsoft Entra-Authentifizierung bietet eine bessere Authentifizierungsunterstützung als Authentifizierung mit Zugriffsschlüsseln oder SAS-Token (Shared Access Signature). Bei Microsoft Entra-Authentifizierung wird die Identität anhand des Microsoft Entra-Identitätsanbieters überprüft. Als Entwickler müssen Sie keine Schlüssel in Ihrem Code verwalten, wenn Sie Microsoft Entra-Authentifizierung verwenden. Sie profitieren auch von allen Sicherheitsfeatures, die in die Microsoft Identity-Plattform integriert sind, z. B. von bedingtem Zugriff. Diese Features können Ihnen helfen, die Sicherheit Ihrer Anwendung zu verbessern. Weitere Informationen finden Sie unter Authentifizieren von Veröffentlichungsclients mit Microsoft Entra ID.

Endpunkt

Verwenden Sie beim Senden des HTTP-POST-Befehls an ein benutzerdefiniertes Thema das 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 mit der Azure CLI abzurufen, verwenden Sie diesen Befehl:

Sie finden den Endpunkt des Themas auf der Registerkarte Übersicht der Seite Event Grid Topic im Azure-Portal.

Screenshot der Themenseite „Event Grid“ im Azure-Portal mit hervorgehobenem Themenendpunkt.

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 mit der Azure CLI abzurufen, verwenden Sie diesen Befehl:

Um die Zugriffstaste für das benutzerdefinierte Thema abzurufen, wählen Sie die Registerkarte Zugriffstasten auf der Seite Ereignisrasterthema im Azure-Portal aus.

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

Ereignisdaten

Für benutzerdefinierte Themen müssen die Daten der obersten Ebene müssen die gleichen Felder enthalten wie die über Standardressourcen definierten Ereignisse. Eine dieser Eigenschaften ist eine data-Eigenschaft, die eindeutige Eigenschaften für das benutzerdefinierte Thema enthält. Als Ereignisherausgeber legen Sie die Eigenschaften für dieses Datenobjekt fest. Das folgende Schema wird verwendet:

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

Eine Beschreibung dieser Eigenschaften finden Sie unter Azure Event Grid-Ereignisschema. Wenn ein Client Ereignisse an ein Ereignisrasterthema sendet, kann das Array eine Gesamtgröße von bis zu 1 MB aufweisen. Die maximal zulässige Größe für ein Ereignis beträgt ebenfalls 1 MB. Ereignisse, die größer als 64 KB sind, werden in Schritten von 64 KB in Rechnung gestellt. Wenn ein Client Ereignisse in einem Batch empfängt, beträgt die maximal zulässige Anzahl von Ereignissen 5.000 pro Batch.

Ein gültiges Ereignisdatenschema lautet beispielsweise wie folgt:

[{
  "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 des 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.

Antwort

Nachdem Sie das Posten an den Themenendpunkt durchgeführt haben, erhalten Sie 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 Größengrenzwerte 413 Nutzlast zu groß

Für Fehler hat der Nachrichtentext das folgende Format:

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