Erişim anahtarlarını kullanarak Azure Event Grid özel konu başlıklarını yayımlama
Bu makalede, erişim anahtarı kullanarak özel bir konuya bir olayın nasıl gönderil olduğu açıklanmıştır. Gönderi ve olay verileri biçimini gösterir. Hizmet Düzeyi Sözleşmesi (SLA) yalnızca beklenen biçimle eşan gönderiler için geçerlidir.
Not
Azure AD 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ğrulaması desteği sağlar. Azure AD kimlik doğrulaması ile kimlik, Azure AD kimlik sağlayıcısına göre doğrulanır. Geliştirici olarak, Azure AD kimlik doğrulamasını kullanıyorsanız kodundaki anahtarları işlemeniz zorunda olmayacaktır. Ayrıca Koşullu Erişim gibi Microsoft Identity platformunda yerleşik olarak yer alan ve uygulamanın güvenlik duruşunu geliştirmenize yardımcı olan tüm güvenlik özelliklerinden de yararlanabilirsiniz. Daha fazla bilgi için bkz. Azure Active Directory kullanarak yayımlama istemcilerinin kimliğini doğrulama.
Uç Nokta
HTTP POST'ı özel bir konuya gönderirken URI biçimini kullanın: https://<topic-endpoint>?api-version=2018-01-01 .
Örneğin, geçerli bir URI şu şekildedir: https://exampletopic.westus2-1.eventgrid.azure.net/api/events?api-version=2018-01-01 .
Azure CLI ile özel konu başlığı uç noktasını almak için şunları kullanın:
az eventgrid topic show --name <topic-name> -g <topic-resource-group> --query "endpoint"
Özel konu başlığı uç noktasını almak için Azure PowerShell kullanın:
(Get-AzEventGridTopic -ResourceGroupName <topic-resource-group> -Name <topic-name>).Endpoint
Üst bilgi
İstekte, kimlik doğrulaması için anahtar içeren aeg-sas-key adlı bir üst bilgi değeri girin.
Örneğin, geçerli bir üst bilgi değeri aeg-sas-key: VXbGWce53249Mt8wuotr0GPmyJ/nDT4hgdEj9DpBeRr38arnnm5OFg== olur.
Azure CLI ile özel bir konunun anahtarını almak için şunları kullanın:
az eventgrid topic key list --name <topic-name> -g <topic-resource-group> --query "key1"
PowerShell ile özel bir konunun anahtarını almak için şunları kullanın:
(Get-AzEventGridTopicKey -ResourceGroupName <topic-resource-group> -Name <topic-name>).Key1
Olay verileri
Özel konular için, en üst düzey veriler standart kaynak tanımlı olaylarla aynı alanları içerir. Bu özelliklerden biri, özel konuya özgü özellikleri içeren bir veri özelliğidir. Olay yayımcısı olarak, bu veri nesnesinin özelliklerini belirlersiniz. Aşağıdaki şemayı kullanın:
[
{
"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 şeması. Olayları bir olay kılavuzu konu başlığına gönderdiğinizde, 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'ın üzerinde olaylar 64 KB'lık artışlarla ücrete tabidir.
Ö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"
}]
Yanıt
Konu uç noktasına gönderdikten sonra bir yanıt alırsınız. Yanıt standart bir HTTP yanıt kodudur. Bazı yaygın yanıtlar:
| Sonuç | Yanıt |
|---|---|
| Başarılı | 200 Tamam |
| Olay verileri yanlış biçimde | 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 Yük Fazla Büyük |
Hatalar için ileti gövdesi aşağıdaki biçime sahip olur:
{
"error": {
"code": "<HTTP status code>",
"message": "<description>",
"details": [{
"code": "<HTTP status code>",
"message": "<description>"
}]
}
}
Sonraki adımlar
- Olay teslimlerini izleme hakkında bilgi için bkz. İleti teslimi Event Grid izleme.
- Kimlik doğrulama anahtarı hakkında daha fazla bilgi için bkz. Event Grid ve kimlik doğrulaması.
- Bir abonelik oluşturma hakkında daha fazla Azure Event Grid için bkz. Event Grid şemasını oluşturma.