Skema peristiwa Azure Event Grid
Artikel ini menjelaskan skema Event Grid, yang merupakan format peristiwa kepemilikan, tidak dapat diperluas, namun berfungsi penuh. Event Grid masih mendukung format kejadian ini dan akan terus mendukungnya. Namun, CloudEvents adalah format peristiwa yang direkomendasikan untuk digunakan. Jika Anda menggunakan aplikasi yang menggunakan format Event Grid, Anda mungkin menemukan informasi yang berguna di bagian [CloudEvents] yang menjelaskan transformasi antara format Event Grid dan CloudEvents yang didukung oleh Event Grid.
Artikel ini menjelaskan secara rinci properti dan skema untuk format Event Grid. Peristiwa terdiri dari satu set dari empat properti string yang diperlukan. Properti umum untuk semua peristiwa dari penerbit mana pun. Objek data memiliki properti yang khusus untuk setiap penerbit. Untuk topik sistem, properti ini khusus untuk penyedia sumber daya, seperti Azure Storage atau Azure Event Hub.
Sumber peristiwa mengirim peristiwa ke Azure Event Grid dalam array yang dapat memiliki beberapa objek peristiwa. Saat memposting peristiwa ke topik Event Grid, array dapat memiliki ukuran total hingga 1 MB. Setiap peristiwa dalam array dibatasi hingga 1 MB. Jika peristiwa atau array lebih besar dari batas ukuran, Anda menerima respons 413 Payload Terlalu Besar. Operasi dibebankan pada peningkatan 64 KB. Jadi, peristiwa lebih dari 64 KB dikenakan biaya operasi seolah-olah mereka adalah beberapa peristiwa. Misalnya, peristiwa berukuran 130 KB akan menimbulkan operasi seolah-olah itu adalah tiga peristiwa terpisah.
Event Grid mengirimkan peristiwa kepada pelanggan dalam array yang memiliki satu peristiwa. Perilaku ini mungkin berubah di masa mendatang.
Anda dapat menemukan skema JSON untuk peristiwa Event Grid dan setiap payload data penerbit Azure di penyimpanan Skema Peristiwa.
Catatan
Dukungan untuk skema peristiwa Event Grid tidak akan dihentikan, tetapi kami tidak akan melakukan peningkatan besar untuk itu di masa depan. Kami menyarankan agar Anda menggunakan skema CloudEvents, yang menyediakan definisi standar dan protokol-agnostik dari struktur dan deskripsi metadata peristiwa. Untuk informasi selengkapnya, lihat Skema CloudEvents v1.0 dengan Azure Event Grid.
Skema peristiwa
Contoh berikut menunjukkan properti yang digunakan oleh semua penerbit peristiwa:
[
{
"topic": string,
"subject": string,
"id": string,
"eventType": string,
"eventTime": string,
"data":{
object-unique-to-each-publisher
},
"dataVersion": string,
"metadataVersion": string
}
]
Misalnya, skema yang diterbitkan untuk peristiwa penyimpanan Azure Blob adalah:
[
{
"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"
}
]
Properti kejadian
Semua peristiwa memiliki data tingkat teratas yang sama berikut ini:
Properti | Tipe | Wajib | Deskripsi |
---|---|---|---|
topic |
string | Tidak, tetapi jika disertakan, harus sesuai dengan topik Event Grid ID Azure Resource Manager. Jika tidak disertakan, stempel Event Grid ke acara. | Jalur sumber daya lengkap ke sumber kejadian. Bidang ini tidak dapat ditulis. Event Grid memberikan nilai ini. |
subject |
string | Ya | Jalur yang ditentukan penerbit ke subjek kejadian. |
eventType |
string | Ya | Salah satu jenis kejadian terdaftar untuk sumber kejadian ini. |
eventTime | string | Ya | Waktu peristiwa dibuat berdasarkan waktu UTC penyedia. |
id |
string | Ya | Pengidentifikasi unik untuk peristiwa tersebut. |
data |
object | Ya | Data peristiwa khusus untuk penyedia sumber. |
dataVersion |
string | Tidak, tetapi akan ditandai dengan nilai kosong. | Versi skema objek data. Penerbit mendefinisikan versi skema. |
metadataVersion |
string | Tidak diperlukan, tetapi jika disertakan, harus cocok dengan Skema Event Grid metadataVersion (saat ini, hanya 1 ). Jika tidak disertakan, stempel Event Grid ke acara. |
Versi skema metadata kejadian. Event Grid mendefinisikan skema properti tingkat atas. Event Grid memberikan nilai ini. |
Untuk mempelajari tentang properti di objek data, lihat artikel di bagian ini: Topik sistem.
Untuk topik kustom, penerbit peristiwa menentukan objek data. Data tingkat atas harus memiliki bidang yang sama dengan peristiwa standar yang ditentukan sumber daya.
Saat menerbitkan kejadian ke topik khusus, buat subjek untuk kejadian Anda yang memudahkan pelanggan untuk mengetahui apakah mereka tertarik dengan kejadian tersebut. Pelanggan menggunakan properti subjek untuk memfilter dan merutekan peristiwa. Pertimbangkan untuk menyediakan jalur tempat peristiwa terjadi sehingga pelanggan dapat memfilter berdasarkan segmen jalur tersebut. Jalur ini memungkinkan pelanggan untuk memfilter kejadian secara sempit atau luas. Jika Anda menyediakan jalur tiga segmen seperti /A/B/C
dalam subjek, pelanggan dapat memfilter berdasarkan segmen pertama /A
untuk mendapatkan set peristiwa yang luas. Pelanggan tersebut mendapatkan peristiwa dengan subjek seperti /A/B/C
atau /A/D/E
. Pelanggan lain dapat memfilter berdasarkan /A/B
untuk mendapatkan set peristiwa yang lebih sempit.
Terkadang, subjek Anda membutuhkan detail selengkapnya tentang apa yang terjadi. Misalnya, penerbit Akun Penyimpanan memberikan subjek /blobServices/default/containers/<container-name>/blobs/<file>
saat file ditambahkan ke kontainer. Pelanggan dapat memfilter berdasarkan jalur /blobServices/default/containers/<container-name>/
untuk mendapatkan semua peristiwa untuk kontainer itu tetapi bukan kontainer lain di akun penyimpanan tersebut. Pelanggan juga dapat memfilter atau merutekan berdasarkan sufiks .txt
untuk hanya menangani file teks.
CloudEvents
CloudEvents adalah format peristiwa yang direkomendasikan untuk digunakan. Azure Event Grid terus berinvestasi dalam fitur yang terkait dengan setidaknya format JSON CloudEvents. Mengingat fakta bahwa beberapa sumber peristiwa seperti layanan Azure menggunakan format Event Grid, tabel berikut disediakan untuk membantu Anda memahami transformasi yang didukung saat menggunakan format CloudEvents dan Event Grid sebagai skema input dalam topik dan sebagai skema output dalam langganan peristiwa. Skema output Event Grid tidak dapat digunakan saat menggunakan CloudEvents sebagai skema input karena CloudEvents mendukung atribut ekstensi yang tidak didukung oleh skema Event Grid.
Skema input | Skema output |
---|---|
Format CloudEvents | Format CloudEvents |
Format Event Grid | Format CloudEvents |
Format Event Grid | Format Event Grid |
Langkah berikutnya
- Untuk pengenalan Azure Event Grid, lihat Apa itu Event Grid?
- Untuk informasi selengkapnya tentang cara membuat langganan Azure Event Grid, lihat Skema langganan Event Grid.