Schemat CloudEvents w wersji 1.0 z usługą Azure Event Grid

Usługa Azure Event Grid natywnie obsługuje zdarzenia w implementacji JSON powiązania protokołu CloudEvents w wersji 1.0 i PROTOKOŁU HTTP. CloudEvents to otwarta specyfikacja do opisywania danych zdarzeń.

Rozwiązanie CloudEvents upraszcza współdziałanie, udostępniając wspólny schemat zdarzeń do publikowania i używania zdarzeń opartych na chmurze. Ten schemat umożliwia jednolite narzędzia, standardowe sposoby routingu i obsługi zdarzeń oraz uniwersalne sposoby deserializacji zewnętrznego schematu zdarzeń. Za pomocą wspólnego schematu można łatwiej zintegrować pracę między platformami.

Usługa CloudEvents jest tworzona przez kilku współpracowników, w tym firmę Microsoft, za pośrednictwem Natywnej Fundacji Przetwarzania w chmurze. Jest ona obecnie dostępna jako wersja 1.0.

W tym artykule opisano schemat CloudEvents z usługą Event Grid.

Przykładowe zdarzenie przy użyciu schematu CloudEvents

Oto przykład zdarzenia usługi Azure Blob Storage w formacie CloudEvents:

{
    "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"
        }
    }
}

Szczegółowy opis dostępnych pól, ich typów i definicji w usłudze CloudEvents w wersji 1.0 jest dostępny tutaj.

Wartości nagłówków dla zdarzeń dostarczonych w schemacie CloudEvents i schematu usługi Event Grid są takie same z wyjątkiem content-type. W przypadku schematu CloudEvents ta wartość nagłówka to "content-type":"application/cloudevents+json; charset=utf-8". W przypadku schematu usługi Event Grid ta wartość nagłówka to "content-type":"application/json; charset=utf-8".

Event Grid for CloudEvents

Usługę Event Grid można użyć zarówno do danych wejściowych, jak i wyjściowych zdarzeń w schemacie CloudEvents. Zdarzenia systemowe, takie jak zdarzenia usługi Blob Storage i zdarzenia usługi IoT Hub oraz zdarzenia niestandardowe, można użyć rozwiązania CloudEvents. Oprócz obsługi usługi CloudEvents usługa Event Grid obsługuje zastrzeżony, niewyciągalny, ale w pełni funkcjonalny format zdarzeń usługi Event Grid. W poniższej tabeli opisano transformację obsługiwaną w przypadku używania formatów CloudEvents i Event Grid jako schematu wejściowego w tematach i jako schematu wyjściowego w subskrypcjach zdarzeń. Schemat danych wyjściowych usługi Event Grid nie może być używany w przypadku używania rozwiązania CloudEvents jako schematu wejściowego, ponieważ usługa CloudEvents obsługuje atrybuty rozszerzenia, które nie są obsługiwane przez schemat usługi Event Grid.

Schemat wejściowy Schemat danych wyjściowych
Format CloudEvents Format CloudEvents
Format usługi Event Grid Format CloudEvents
Format usługi Event Grid Format usługi Event Grid

W przypadku wszystkich schematów zdarzeń usługa Event Grid wymaga weryfikacji podczas publikowania w temacie usługi Event Grid i podczas tworzenia subskrypcji zdarzeń. Aby uzyskać więcej informacji, zobacz Zabezpieczenia i uwierzytelnianie usługi Event Grid.

Następne kroki

Zobacz How to use CloudEvents v1.0 schema with Event Grid (Jak używać schematu CloudEvents w wersji 1.0 z usługą Event Grid).