Azure Event Grid olay şeması
Bu makalede, özel, genişletilebilir ancak tamamen işlevsel bir olay biçimi olan Event Grid şeması açıklanmaktadır. Event Grid bu olay biçimini desteklemeye devam eder ve desteklemeye devam eder. Ancak CloudEvents, kullanılması önerilen olay biçimidir. Event Grid biçimini kullanan uygulamalar kullanıyorsanız, [CloudEvents] bölümünde Event Grid ile Event Grid tarafından desteklenen CloudEvents biçimi arasındaki dönüşümleri açıklayan yararlı bilgiler bulabilirsiniz.
Bu makalede Event Grid biçiminin özellikleri ve şeması ayrıntılı olarak açıklanmaktadır. Olaylar dört gerekli dize özelliği kümesinden oluşur. Özellikler, herhangi bir yayımcının tüm olayları için ortaktır. Veri nesnesinin her yayımcıya özgü özellikleri vardır. Sistem konuları için bu özellikler Azure Depolama veya Azure Event Hubs gibi kaynak sağlayıcısına özgü özelliklerdir.
Olay kaynakları, birkaç olay nesnesine sahip olabilecek bir dizide Olayları Azure Event Grid'e gönderir. Olayları bir Event Grid konusuna gönderirken, dizinin toplam boyutu 1 MB'a kadar olabilir. Dizideki her olay 1 MB ile sınırlıdır. Bir olay veya dizi boyut sınırlarından büyükse 413 Payload Too Large yanıtını alırsınız. İşlemler 64 KB'lık artışlarla ücretlendirilir. Bu nedenle, 64 KB'ın üzerindeki olaylar birden çok olaymış gibi işlem ücretlerine tabi olur. Örneğin, 130 KB olan bir olay üç ayrı olaymış gibi işlemlere neden olur.
Event Grid, olayları tek bir olayı olan bir dizideki abonelere gönderir. Bu davranış gelecekte değişebilir.
Event Grid olayının JSON şemasını ve her Azure yayımcısının veri yükünü Olay Şeması deposunda bulabilirsiniz.
Not
Event Grid olay şeması desteği kullanımdan kaldırılmayacaktır, ancak gelecekte bu şemada önemli geliştirmeler yapmayacağız. Olayların yapısı ve meta veri açıklaması için standartlaştırılmış ve protokolden bağımsız bir tanım sağlayan CloudEvents şemasını kullanmanızı öneririz. Daha fazla bilgi için bkz . Azure Event Grid ile CloudEvents v1.0 şeması.
Olay şeması
Aşağıdaki örnekte tüm olay yayımcıları tarafından kullanılan özellikler gösterilmektedir:
[
{
"topic": string,
"subject": string,
"id": string,
"eventType": string,
"eventTime": string,
"data":{
object-unique-to-each-publisher
},
"dataVersion": string,
"metadataVersion": string
}
]
Örneğin, Azure Blob depolama olayı için yayımlanan şema şöyledir:
[
{
"topic": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/contosorg/providers/Microsoft.Storage/storageAccounts/contosostorage",
"subject": "/blobServices/default/containers/testcontainer/blobs/dataflow.jpg",
"eventType": "Microsoft.Storage.BlobCreated",
"id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
"data": {
"api": "PutBlob",
"clientRequestId": "bbbbbbbb-1111-2222-3333-cccccccccccc",
"requestId": "cccccccc-2222-3333-4444-dddddddddddd",
"eTag": "0x8DD15A69488FE5A",
"contentType": "image/jpeg",
"contentLength": 52577,
"blobType": "BlockBlob",
"accessTier": "Default",
"url": "https://contosostorage.blob.core.windows.net/testcontainer/dataflow.jpg",
"sequencer": "0000000000000000000000000003A13C00000000007da85d",
"storageDiagnostics": {
"batchId": "9d292d9f-e006-00a5-008f-47b300000000"
}
},
"dataVersion": "",
"metadataVersion": "1",
"eventTime": "2024-12-06T03:32:15.7238874Z"
}
]
Olay özellikleri
Tüm olaylar aşağıdaki en üst düzey verilere sahiptir:
Özellik | Type | Zorunlu | Açıklama |
---|---|---|---|
topic |
Dize | Hayır, ancak varsa, Event Grid konusu Azure Resource Manager kimliği ile tam olarak eşleşmelidir. Dahil değilse, Event Grid olaya damgalar. | Olay kaynağının tam kaynak yolu. Bu alan yazılabilir değil. Event Grid bu değeri sağlar. |
subject |
string | Yes | Olay konusunun yayımcı tarafından tanımlanan yolu. |
eventType |
string | Yes | Bu olay kaynağı için kayıtlı olay türlerinden biri. |
eventTime | string | Yes | Sağlayıcının UTC saati temelinde olayın oluşturulduğu saat. |
id |
string | Yes | Olayın benzersiz tanımlayıcısı. |
data |
nesne | Yes | Kaynak sağlayıcısına özgü olay verileri. |
dataVersion |
Dize | Hayır, ancak boş bir değerle damgalanır. | Veri nesnesinin şema sürümü. Şema sürümünü yayımcı tanımlar. |
metadataVersion |
Dize | Gerekli değildir, ancak eklenirse Event Grid Şeması metadataVersion ile tam olarak eşleşmelidir (şu anda yalnızca 1 ). Dahil değilse, Event Grid olaya damgalar. |
Olay meta verilerinin şema sürümü. Event Grid en üst düzey özelliklerin şemasını tanımlar. Event Grid bu değeri sağlar. |
Veri nesnesindeki özellikler hakkında bilgi edinmek için bu bölümdeki makalelere bakın: Sistem konuları.
Özel konular için olay yayımcısı veri nesnesini belirler. Üst düzey veriler, standart kaynak tanımlı olaylarla aynı alanlara sahip olmalıdır.
Olayları özel konulara yayımlarken, abonelerin olayla ilgilenip ilgilenmediklerini bilmelerini kolaylaştıran etkinlikleriniz için konular oluşturun. Aboneler olayları filtrelemek ve yönlendirmek için konusunu kullanır. Abonelerin bu yolun segmentlerine göre filtrelemesi için olayın gerçekleştiği yerin yolunu sağlamayı göz önünde bulundurun. Yol, abonelerin olayları dar veya geniş kapsamlı bir şekilde filtrelemesini sağlar. Örneğin, konuda olduğu gibi /A/B/C
üç segment yolu sağlarsanız, aboneler geniş bir olay kümesi elde etmek için ilk segmente /A
göre filtreleyebilir. Bu aboneler veya /A/D/E
gibi /A/B/C
konularla ilgili olaylar alır. Diğer aboneler, daha dar bir olay kümesi elde etmek için ölçütüne göre filtreleyebilir /A/B
.
Bazen konunuz ne olduğu hakkında daha fazla ayrıntıya ihtiyaç duyar. Örneğin, Depolama Hesapları yayımcısı bir kapsayıcıya dosya eklendiğinde konuyu /blobServices/default/containers/<container-name>/blobs/<file>
sağlar. Abone, bu kapsayıcının tüm olaylarını almak için yoluna /blobServices/default/containers/<container-name>/
göre filtre yapabilir ancak depolama hesabındaki diğer kapsayıcıları alamaz. Abone, yalnızca metin dosyalarıyla çalışmak için son eke .txt
göre filtre veya yönlendirme de yapabilir.
CloudEvents
CloudEvents, kullanılması önerilen olay biçimidir. Azure Event Grid, en az CloudEvents JSON biçimiyle ilgili özelliklere yatırım yapmaya devam eder. Azure hizmetleri gibi bazı olay kaynaklarının Event Grid biçimini kullandığı göz önünde bulundurulduğunda, CloudEvents ve Event Grid biçimlerini konu başlıklarında giriş şeması olarak ve olay aboneliklerinde çıkış şeması olarak kullanırken desteklenen dönüşümü anlamanıza yardımcı olmak için aşağıdaki tablo sağlanır. CloudEvents, Event Grid şeması tarafından desteklenmeyen uzantı özniteliklerini desteklediğinden, giriş şeması olarak CloudEvents kullanılırken Event Grid çıkış şeması kullanılamaz.
Giriş şeması | Çıkış şeması |
---|---|
CloudEvents biçimi | CloudEvents biçimi |
Event Grid biçimi | CloudEvents biçimi |
Event Grid biçimi | Event Grid biçimi |
Sonraki adımlar
- Azure Event Grid'e giriş için bkz. Event Grid nedir?
- Azure Event Grid aboneliği oluşturma hakkında daha fazla bilgi için bkz . Event Grid abonelik şeması.