Schéma událostí Azure Event Gridu
Tento článek popisuje schéma Event Gridu, které je proprietární, nevýkonné, ale plně funkční formát události. Event Grid stále podporuje tento formát události a bude ho i nadále podporovat. CloudEvents je ale doporučený formát události, který se má použít. Pokud používáte aplikace, které používají formát Event Gridu, můžou být užitečné informace v části [CloudEvents], která popisuje transformace mezi formátem Event Grid a CloudEvents podporovaným službou Event Grid.
Tento článek podrobně popisuje vlastnosti a schéma pro formát Event Gridu. Události se skládají ze sady čtyř požadovaných vlastností řetězce. Vlastnosti jsou společné pro všechny události od libovolného vydavatele. Datový objekt má vlastnosti specifické pro každého vydavatele. V případě systémových témat jsou tyto vlastnosti specifické pro poskytovatele prostředků, jako je Azure Storage nebo Azure Event Hubs.
Zdroje událostí odesílají události do Služby Azure Event Grid v poli, které můžou mít několik objektů událostí. Při publikování událostí do tématu Event Gridu může mít pole celkovou velikost až 1 MB. Každá událost v poli je omezená na 1 MB. Pokud je událost nebo pole větší než limity velikosti, obdržíte odpověď 413 Příliš velká datová část. Operace se ale účtují v přírůstcích 64 kB. Za události nad 64 kB se tedy účtují poplatky za operace, jako by šlo o více událostí. Například událost, která je 130 kB, by způsobovala operace, jako by se jednalo o tři samostatné události.
Event Grid odesílá události odběratelům v poli, které má jednu událost. Toto chování se může v budoucnu změnit.
Schéma JSON pro událost Event Grid a datovou část každého vydavatele Azure najdete v úložišti schémat událostí.
Poznámka:
Podpora schématu událostí Event Gridu nebude vyřazena, ale v budoucnu nebudeme dělat žádná zásadní vylepšení. Doporučujeme použít schéma CloudEvents, které poskytuje standardizovanou a protokolovou definici struktury a popisu metadat událostí. Další informace najdete ve schématu CloudEvents v1.0 se službou Azure Event Grid.
Schéma událostí
Následující příklad ukazuje vlastnosti, které používají všichni vydavatelé událostí:
[
{
"topic": string,
"subject": string,
"id": string,
"eventType": string,
"eventTime": string,
"data":{
object-unique-to-each-publisher
},
"dataVersion": string,
"metadataVersion": string
}
]
Například schéma publikované pro událost azure Blob Storage je:
[
{
"topic": "/subscriptions/{subscription-id}/resourceGroups/Storage/providers/Microsoft.Storage/storageAccounts/xstoretestaccount",
"subject": "/blobServices/default/containers/oc2d2817345i200097container/blobs/oc2d2817345i20002296blob",
"eventType": "Microsoft.Storage.BlobCreated",
"eventTime": "2017-06-26T18:41:00.9584103Z",
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"data": {
"api": "PutBlockList",
"clientRequestId": "6d79dbfb-0e37-4fc4-981f-442c9ca65760",
"requestId": "831e1650-001e-001b-66ab-eeb76e000000",
"eTag": "0x8D4BCC2E4835CD0",
"contentType": "application/octet-stream",
"contentLength": 524288,
"blobType": "BlockBlob",
"url": "https://oc2d2817345i60006.blob.core.windows.net/oc2d2817345i200097container/oc2d2817345i20002296blob",
"sequencer": "00000000000004420000000000028963",
"storageDiagnostics": {
"batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
}
},
"dataVersion": "",
"metadataVersion": "1"
}
]
Vlastnosti události
Všechny události mají stejná následující data nejvyšší úrovně:
Vlastnost | Typ | Požadováno | Popis |
---|---|---|---|
topic |
string | Ne, ale pokud je součástí, musí přesně odpovídat ID Azure Resource Manageru tématu Event Gridu. Pokud není součástí, event gridové razítko na událost. | Úplná cesta prostředku ke zdroji událostí. Toto pole není zapisovatelné. Tuto hodnotu poskytuje Event Grid. |
subject |
string | Ano | Cesta k předmětu události, kterou definuje vydavatel. |
eventType |
string | Ano | Jeden z registrovaných typů události pro tento zdroj události. |
eventTime | string | Ano | Čas vygenerování události na základě času UTC poskytovatele. |
id |
string | Ano | Jedinečný identifikátor události. |
data |
objekt | Ano | Data událostí specifická pro poskytovatele prostředků. |
dataVersion |
string | Ne, ale bude označena prázdnou hodnotou. | Verze schématu datového objektu. Verzi schématu definuje vydavatel. |
metadataVersion |
string | Nevyžaduje se, ale pokud je součástí, musí přesně odpovídat schématu Event Gridu metadataVersion (aktuálně pouze 1 ). Pokud není součástí, event gridové razítko na událost. |
Verze schématu metadat události. Schéma vlastností nejvyšší úrovně definuje Event Grid. Tuto hodnotu poskytuje Event Grid. |
Další informace o vlastnostech datového objektu najdete v článcích v této části: Systémová témata.
U vlastních témat určuje vydavatel události datový objekt. Data nejvyšší úrovně by měla mít stejná pole jako standardní události definované prostředky.
Při publikování událostí do vlastních témat vytvářejte předměty pro události, které usnadňují odběratelům zjistit, jestli se o událost zajímají. Odběratelé používají předmět k filtrování a směrování událostí. Zvažte zadání cesty pro místo, kde k události došlo, aby předplatitelé mohli filtrovat podle segmentů této cesty. Tato cesta umožňuje odběratelům zúžit nebo široce filtrovat události. Pokud například zadáte tři segmentové cesty jako /A/B/C
v předmětu, předplatitelé můžou filtrovat podle prvního segmentu /A
, aby získali širokou sadu událostí. Tito odběratelé získají události s tématy, jako /A/B/C
je nebo /A/D/E
. Další předplatitelé můžou filtrovat podle /A/B
toho, aby získali užší sadu událostí.
Někdy vaše téma potřebuje podrobnější informace o tom, co se stalo. Vydavatel účtů úložiště například poskytuje předmět /blobServices/default/containers/<container-name>/blobs/<file>
při přidání souboru do kontejneru. Odběratel může filtrovat podle cesty /blobServices/default/containers/<container-name>/
, aby získal všechny události pro daný kontejner, ale ne jiné kontejnery v účtu úložiště. Odběratel může také filtrovat nebo směrovat podle přípony .txt
, aby fungoval pouze s textovými soubory.
CloudEvents
CloudEvents je doporučený formát události, který se má použít. Azure Event Grid nadále investuje do funkcí souvisejících s alespoň formátem JSON CloudEvents. Vzhledem k tomu, že některé zdroje událostí, jako jsou služby Azure, používají formát Event Gridu, je k dispozici následující tabulka, která vám pomůže pochopit, jak transformace podporovaná při použití CloudEvents a Event Gridu jako vstupní schéma v tématech a jako výstupní schéma v odběrech událostí. Výstupní schéma Event Gridu nejde použít při použití CloudEvents jako vstupního schématu, protože CloudEvents podporuje atributy rozšíření, které schéma Event Gridu nepodporuje.
Vstupní schéma | Výstupní schéma |
---|---|
Formát CloudEvents | Formát CloudEvents |
Formát Event Gridu | Formát CloudEvents |
Formát Event Gridu | Formát Event Gridu |
Další kroky
- Úvod do Azure Event Gridu najdete v tématu Co je Event Grid?
- Další informace o vytvoření odběru služby Azure Event Grid najdete ve schématu odběru služby Event Grid.