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 özeldir.

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.

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

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 olay kaynağına bakın:

Ö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/Egibi /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/testcontainer 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