Aracılığıyla paylaş


Erişim anahtarlarını kullanarak olayları Azure Event Grid özel konu başlıklarına yayımlama

Bu makalede, erişim anahtarı kullanarak özel bir konuya olay gönderme açıklanmaktadır. Gönderi ve olay verilerinin biçimini gösterir. Hizmet Düzeyi Sözleşmesi (SLA) yalnızca beklenen biçime uyan gönderiler için geçerlidir.

Not

Microsoft Entra kimlik doğrulaması, erişim anahtarı veya Paylaşılan Erişim İmzası (SAS) belirteci kimlik doğrulaması tarafından sunulandan daha üstün bir kimlik doğrulama desteği sağlar. Microsoft Entra kimlik doğrulaması ile kimlik, Microsoft Entra kimlik sağlayıcısına karşı doğrulanır. Geliştirici olarak, Microsoft Entra kimlik doğrulamasını kullanıyorsanız kodunuzda anahtarları işlemeniz gerekmez. Ayrıca, uygulamanızın güvenlik duruşunu geliştirmenize yardımcı olabilecek Koşullu Erişim gibi Microsoft kimlik platformu yerleşik tüm güvenlik özelliklerinden de yararlanabilirsiniz. Daha fazla bilgi için bkz . Microsoft Entra Id kullanarak yayımlama istemcilerinin kimliğini doğrulama.

Uç nokta

HTTP POST'unu özel bir konuya gönderirken URI biçimini kullanın: https://<topic-endpoint>?api-version=2018-01-01. Örneğin, geçerli bir URI'dir: https://exampletopic.westus2-1.eventgrid.azure.net/api/events?api-version=2018-01-01. Azure CLI kullanarak özel bir konunun uç noktasını almak için şunu kullanın:

Konunun uç noktasını Azure portalındaki Event Grid Konu Sayfasının Genel Bakış sekmesinde bulabilirsiniz.

Konu uç noktasının vurgulandığı Azure portalında Event Grid konu sayfasını gösteren ekran görüntüsü.

İstekte, kimlik doğrulaması için bir anahtar içeren adlı aeg-sas-key bir üst bilgi değeri ekleyin. Örneğin, geçerli bir üst bilgi değeri olur aeg-sas-key: xxxxxxxxxxxxxxxxxxxxxxx. Azure CLI kullanarak özel bir konunun anahtarını almak için şunu kullanın:

Özel konunun erişim anahtarını almak için Azure portalındaki Event Grid Konusu sayfasında Erişim anahtarları sekmesini seçin.

Azure portalındaki Event Grid konu sayfasının Erişim Anahtarları sekmesini gösteren ekran görüntüsü.

Olay verileri

Özel konular için, üst düzey veriler standart kaynak tanımlı olaylarla aynı alanları içerir. Bu özelliklerden biri, özel konuya özgü özellikler içeren bir data özelliktir. Olay yayımcısı olarak, bu veri nesnesinin özelliklerini belirlersiniz. Şema şu şekildedir:

[
  {
    "id": string,    
    "eventType": string,
    "subject": string,
    "eventTime": string-in-date-time-format,
    "data":{
      object-unique-to-each-publisher
    },
    "dataVersion": string
  }
]

Bu özelliklerin açıklaması için bkz . Azure Event Grid olay şeması. İstemci olayları Event Grid konusuna gönderdiğinde, dizinin toplam boyutu 1 MB'a kadar olabilir. Bir olay için izin verilen en büyük boyut da 1 MB'tır. 64 KB üzerindeki olaylar 64 KB'lık artışlarla ücretlendirilir. bir istemci toplu iş içinde olay aldığında, izin verilen en fazla olay sayısı toplu iş başına 5.000'dir.

Örneğin, geçerli bir olay veri şeması şöyledir:

[{
  "id": "1807",
  "eventType": "recordInserted",
  "subject": "myapp/vehicles/motorcycles",
  "eventTime": "2017-08-10T21:03:07+00:00",
  "data": {
    "make": "Ducati",
    "model": "Monster"
  },
  "dataVersion": "1.0"
}]

Örnek olayı gönderme

Bu bölümde özel konuya örnek olay gönderme adımları gösterilmektedir.

  1. Azure portalında Cloud Shell'i başlatın.

  2. Cloud Shell'de Bash veya PowerShell oturumunda Azure PowerShell veya Azure CLI'dan komutları çalıştırın.

    Azure portalında Cloud Shell'i gösteren ekran görüntüsü.

Response

Konu uç noktasına postaladıktan sonra bir yanıt alırsınız. Yanıt, standart bir HTTP yanıt kodudur. Bazı yaygın yanıtlar şunlardır:

Sonuç Response
Başarılı 200 Tamam
Olay verilerinin biçimi yanlış 400 Hatalı İstek
Geçersiz erişim anahtarı 401 Yetkisiz
Yanlış uç nokta 404 Bulunamadı
Dizi veya olay boyut sınırlarını aşıyor 413 Zararlı Yük Çok Büyük

Hatalar için ileti gövdesi aşağıdaki biçime sahiptir:

{
    "error": {
        "code": "<HTTP status code>",
        "message": "<description>",
        "details": [{
            "code": "<HTTP status code>",
            "message": "<description>"
    }]
  }
}