CloudEvents v1.0-Schema mit Azure Event Grid

Azure Event Grid unterstützt nativ Ereignisse in der JSON-Implementierung von CloudEvents 1.0 und in der HTTP-Bindung. CloudEvents ist eine offene Spezifikation zur Beschreibung von Ereignisdaten.

CloudEvents vereinfacht die Interoperabilität, indem ein allgemeines Ereignisschema für die Veröffentlichung bereitgestellt wird und cloudbasierte Ereignisse genutzt werden. Dieses Schema ermöglicht einheitliche Tools und Standardmöglichkeiten für Routing und Behandlung von Ereignissen sowie universelle Möglichkeiten, das äußere Ereignisschema zu deserialisieren. Mit einem allgemeinen Schema können Sie Arbeit leichter plattformübergreifend integrieren.

CloudEvents wird von mehreren Partnern, einschließlich Microsoft, über die Cloud Native Computing Foundation entwickelt. Es ist derzeit in Version 1.0 verfügbar.

In diesem Artikel wird das CloudEvents-Schema mit Event Grid beschrieben.

Beispielereignis mit CloudEvents-Schema

Dies ist ein Beispiel für ein Azure Blob Storage-Ereignis im CloudEvents-Format:

{
    "specversion": "1.0",
    "type": "Microsoft.Storage.BlobCreated",  
    "source": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.Storage/storageAccounts/{storage-account}",
    "id": "9aeb0fdf-c01e-0131-0922-9eb54906e209",
    "time": "2019-11-18T15:13:39.4589254Z",
    "subject": "blobServices/default/containers/{storage-container}/blobs/{new-file}",    
    "data": {
        "api": "PutBlockList",
        "clientRequestId": "4c5dd7fb-2c48-4a27-bb30-5361b5de920a",
        "requestId": "9aeb0fdf-c01e-0131-0922-9eb549000000",
        "eTag": "0x8D76C39E4407333",
        "contentType": "image/png",
        "contentLength": 30699,
        "blobType": "BlockBlob",
        "url": "https://gridtesting.blob.core.windows.net/testcontainer/{new-file}",
        "sequencer": "000000000000000000000000000099240000000000c41c18",
        "storageDiagnostics": {
            "batchId": "681fe319-3006-00a8-0022-9e7cde000000"
        }
    }
}

Hier finden Sie eine ausführliche Beschreibung der verfügbaren Felder, Typen und Definitionen in CloudEvents v1.0.

Die im CloudEvents- und Event Grid-Schema übermittelten Headerwerte für Ereignisse sind mit Ausnahme von content-type identisch. Für das CloudEvents-Schema ist dieser Headerwert "content-type":"application/cloudevents+json; charset=utf-8". Für das Event Grid-Schema ist dieser Headerwert "content-type":"application/json; charset=utf-8".

Event Grid für CloudEvents

Sie können Event Grid für die Eingabe und Ausgabe von Ereignissen im CloudEvents-Schema verwenden. Sie können CloudEvents für Systemereignisse wie Blob Storage-Ereignisse und IoT Hub-Ereignisse sowie benutzerdefinierte Ereignisse verwenden. Zusätzlich zur Unterstützung von CloudEvents unterstützt Event Grid ein proprietäres, nonextensibles, aber voll funktionsfähiges Event Grid-Ereignisformat. In der folgenden Tabelle wird die Transformation beschrieben, die bei der Verwendung von CloudEvents- und Event Grid-Formaten als Eingabeschema in Themen und als Ausgabeschema in Ereignisabonnements unterstützt wird. Ein Event Grid-Ausgabeschema kann nicht verwendet werden, wenn CloudEvents als Eingabeschema verwendet wird, weil CloudEvents Erweiterungsattribute unterstützt, die vom Event Grid-Schema nicht unterstützt werden.

Eingabeschema Ausgabeschema
CloudEvents-Format CloudEvents-Format
Event Grid-Format CloudEvents-Format
Event Grid-Format Event Grid-Format

Für alle Ereignisschemas setzt Event Grid beim Veröffentlichen in einem Event Grid-Thema und Erstellen eines Ereignisabonnements eine Überprüfung voraus. Weitere Informationen finden Sie unter Event Grid – Sicherheit und Authentifizierung.

Nächste Schritte

Lesen Sie Verwenden des CloudEvents 1.0-Schemas mit Event Grid.