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.