Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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
- Ein benutzerdefiniertes Thema für Azure Event Grid. Um eines zu erstellen, siehe Benutzerdefinierte Ereignisse an einen Web-Endpunkt senden über das Azure-Portal.
- Azure CLI, Azure PowerShell oder Zugriff auf das Azure-Portal, um den Topic-Endpunkt und den Zugriffsschlüssel abzurufen.
- Ein Werkzeug, das HTTP-POST-Anfragen senden kann, zum Beispiel
curl.
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.
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.
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.
Starten Sie im Azure-Portal Cloud Shell.
Führen Sie in der Cloud Shell die Befehle aus der Azure PowerShell- oder Azure CLI in der Bash- oder PowerShell-Sitzung aus.
Ü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>"
}]
}
}
Zugehöriger Inhalt
- Überwachen Sie die Zustellung von Event Grid-Nachrichten: Erfahren Sie, wie Sie die Zustellung von Ereignissen nachverfolgen und Probleme beheben.
- Ereignisrastersicherheit und -Authentifizierung: Verstehen, wie Sie Ihre Ereignisse mit Authentifizierungsschlüsseln sichern.
- Event Grid-Abonnementschema: Schrittweise Anleitung zum Erstellen eines Event Grid-Abonnements.