Azure Event Grid için özel konuya göndermePost to custom topic for Azure Event Grid

Bu makalede, bir özel konuya bir olay göndermek nasıl açıklar.This article describes how to post an event to a custom topic. Bu biçim post ve olay verilerini gösterir.It shows the format of the post and event data. Hizmet düzeyi sözleşmesi (SLA) yalnızca, beklenen biçim ile eşleşmesi için geçerlidir.The Service Level Agreement (SLA) only applies to posts that match the expected format.

Not

Bu makale yeni Azure PowerShell Az modülünü kullanacak şekilde güncelleştirilmiştir.This article has been updated to use the new Azure PowerShell Az module. En azından Aralık 2020'ye kadar hata düzeltmeleri almaya devam edecek olan AzureRM modülünü de kullanmaya devam edebilirsiniz.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Yeni Az modülüyle AzureRM'nin uyumluluğu hakkında daha fazla bilgi edinmek için bkz. Yeni Azure PowerShell Az modülüne giriş.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Az modülü yükleme yönergeleri için bkz. Azure PowerShell'i yükleme.For Az module installation instructions, see Install Azure PowerShell.

Uç NoktaEndpoint

HTTP POST bir özel konuya gönderme, URI biçimi kullanın: https://<topic-endpoint>?api-version=2018-01-01.When sending the HTTP POST to a custom topic, use the URI format: https://<topic-endpoint>?api-version=2018-01-01.

Örneğin, geçerli bir URL'ye sahip: https://exampletopic.westus2-1.eventgrid.azure.net/api/events?api-version=2018-01-01.For example, a valid URI is: https://exampletopic.westus2-1.eventgrid.azure.net/api/events?api-version=2018-01-01.

Azure CLI ile özel bir konu uç noktası almak için kullanın:To get the endpoint for a custom topic with Azure CLI, use:

az eventgrid topic show --name <topic-name> -g <topic-resource-group> --query "endpoint"

Azure PowerShell ile özel bir konu uç noktası almak için kullanın:To get the endpoint for a custom topic with Azure PowerShell, use:

(Get-AzEventGridTopic -ResourceGroupName <topic-resource-group> -Name <topic-name>).Endpoint

İstekte adlı üst bilgisi değeri dahil aeg-sas-key , kimlik doğrulaması için bir anahtar içeriyor.In the request, include a header value named aeg-sas-key that contains a key for authentication.

Örneğin, geçerli bir üst bilgi değeri olan aeg-sas-key: VXbGWce53249Mt8wuotr0GPmyJ/nDT4hgdEj9DpBeRr38arnnm5OFg==.For example, a valid header value is aeg-sas-key: VXbGWce53249Mt8wuotr0GPmyJ/nDT4hgdEj9DpBeRr38arnnm5OFg==.

Azure CLI ile özel bir konu anahtarı almak için kullanın:To get the key for a custom topic with Azure CLI, use:

az eventgrid topic key list --name <topic-name> -g <topic-resource-group> --query "key1"

PowerShell ile özel bir konu anahtarı almak için kullanın:To get the key for a custom topic with PowerShell, use:

(Get-AzEventGridTopicKey -ResourceGroupName <topic-resource-group> -Name <topic-name>).Key1

Olay verileriEvent data

Özel konular için üst düzey veri kaynağı tarafından tanımlanan standart olayları aynı alanları içerir.For custom topics, the top-level data contains the same fields as standard resource-defined events. Bu özelliklerden birini özel konuya özgü özellikler içeren bir veri özelliğidir.One of those properties is a data property that contains properties unique to the custom topic. Olay yayımcısı bu veri nesnesinin özelliklerini belirler.As event publisher, you determine the properties for that data object. Aşağıdaki şemayı kullanın:Use the following schema:

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

Bu özellikleri açıklaması için bkz: Azure Event Grid olay şeması.For a description of these properties, see Azure Event Grid event schema. Event grid konusu olayları nakil sırasında dizinin toplam boyutu 1 MB'a kadar olabilir.When posting events to an event grid topic, the array can have a total size of up to 1 MB. Dizideki her olay, 64 KB'lık (Genel kullanım) veya 1 MB (Önizleme) ile sınırlıdır.Each event in the array is limited to 64 KB (General Availability) or 1 MB (preview).

Not

Bir olay boyutu en fazla 64 KB, genel kullanılabilirlik (GA) hizmet düzeyi sözleşmesi (SLA) tarafından alınmıştır.An event of size up to 64 KB is covered by General Availability (GA) Service Level Agreement (SLA). Bir olay boyutu en fazla desteği 1 MB şu anda Önizleme aşamasındadır.The support for an event of size up to 1 MB is currently in preview. Olaylar üzerinde 64 KB, 64 KB'lık artışlarla ücretlendirilir.Events over 64 KB are charged in 64-KB increments.

Örneğin, geçerli olay veri şeması verilmiştir:For example, a valid event data schema is:

[{
  "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ıtResponse

Konu başlığı uç noktası için posta sonra bir yanıt alırsınız.After posting to the topic endpoint, you receive a response. Yanıta standart bir HTTP yanıt kodu ' dir.The response is a standard HTTP response code. Bazı ortak yanıtları şunlardır:Some common responses are:

SonuçResult YanıtResponse
BaşarılıSuccess 200 TAMAM200 OK
Olay verileri hatalı biçimdeEvent data has incorrect format 400 Hatalı istek400 Bad Request
Geçersiz erişim anahtarıInvalid access key 401 Yetkisiz401 Unauthorized
Yanlış uç noktasıIncorrect endpoint 404 Bulunamadı404 Not Found
Dizi ya da olay boyutu sınırları aşıyorArray or event exceeds size limits 413 yükü çok büyük413 Payload Too Large

Hataları, ileti gövdesi aşağıdaki biçime sahiptir:For errors, the message body has the following format:

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

Sonraki adımlarNext steps