Bagikan melalui


Publikasikan acara ke topik kustom Azure Event Grid menggunakan kunci akses

Artikel ini menjelaskan cara memposting kejadian ke topik kustom menggunakan kunci akses. Format postingan dan data kejadian akan ditunjukkan di sini. Perjanjian Tingkat Layanan (SLA) hanya berlaku untuk postingan yang cocok dengan format yang diharapkan.

Catatan

Autentikasi Microsoft Entra menyediakan dukungan autentikasi yang unggul daripada yang ditawarkan oleh kunci akses atau autentikasi token Tanda Tangan Akses Bersama (SAS). Dengan autentikasi Microsoft Entra, identitas divalidasi terhadap IdP Microsoft Entra. Sebagai pengembang, Anda tidak perlu menangani kunci dalam kode jika Anda menggunakan autentikasi Microsoft Entra. Anda juga akan mendapat manfaat dari semua fitur keamanan yang disertakan dalam platform identitas Microsoft, seperti Akses Bersyar, yang dapat membantu Anda meningkatkan sikap keamanan aplikasi Anda. Untuk informasi selengkapnya, lihat Mengautentikasi klien penerbitan menggunakan ID Microsoft Entra.

Titik akhir

Saat mengirim HTTP POST ke topik kustom, gunakan format URI: https://<topic-endpoint>?api-version=2018-01-01. Misalnya, URI yang valid adalah: https://exampletopic.westus2-1.eventgrid.azure.net/api/events?api-version=2018-01-01. Untuk mendapatkan titik akhir untuk topik kustom menggunakan Azure CLI, gunakan:

Anda dapat menemukan titik akhir topik pada tab Gambaran Umum halaman Topik Event Grid di portal Azure.

Cuplikan layar yang memperlihatkan halaman topik Event Grid di portal Azure dengan titik akhir topik disorot.

Di dalam permintaan, sertakan nilai header bernama aeg-sas-key yang berisi kunci untuk autentikasi. Misalnya, nilai header yang valid adalah aeg-sas-key: xxxxxxxxxxxxxxxxxxxxxxx. Untuk mendapatkan kunci untuk topik kustom menggunakan Azure CLI, gunakan:

Untuk mendapatkan kunci akses untuk topik kustom, pilih tab Kunci akses di halaman Topik Event Grid di portal Azure.

Cuplikan layar yang memperlihatkan tab Kunci Akses dari halaman topik Event Grid di portal Azure.

Data kejadian

Untuk topik kustom, data tingkat atas berisi bidang yang sama dengan kejadian yang ditentukan sumber daya standar. Salah satu properti tersebut adalah data properti yang berisi properti unik untuk topik kustom. Sebagai penerbit peristiwa, Anda menentukan properti untuk objek data tersebut. Berikut adalah skemanya:

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

Untuk deskripsi properti ini, lihat Skema kejadian Azure Event Grid. Saat klien mengirim peristiwa ke topik Event Grid, array dapat memiliki ukuran total hingga 1 MB. Ukuran maksimum yang diizinkan untuk suatu kejadian juga 1 MB. Peristiwa di atas 64 KB dikenakan biaya dengan 64 KB tahapan. Ketika klien menerima peristiwa dalam batch, jumlah peristiwa maksimum yang diizinkan adalah 5.000 per batch.

Misalnya, skema data kejadian yang valid adalah:

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

Mengirim contoh peristiwa

Bagian ini memperlihatkan cara mengirim contoh peristiwa ke topik kustom.

  1. Di portal Azure, luncurkan Cloud Shell.

  2. Di Cloud Shell, jalankan perintah dari Azure PowerShell atau Azure CLI di sesi Bash atau PowerShell .

    Cuplikan layar yang memperlihatkan Cloud Shell di portal Azure.

Respons

Setelah memposting ke titik akhir topik, Anda akan menerima respons. Responsnya adalah kode respons HTTP standar. Beberapa respons umum adalah:

Hasil Respons
Berhasil 200 OK
Data kejadian memiliki format yang salah 400 Permintaan Buruk
Kunci akses tidak valid 401 Tidak Sah
Titik akhir salah 404 Tidak ditemukan
Larik atau kejadian melebihi batas ukuran 413 Payload Too Large

Untuk kesalahan, isi pesan memiliki format berikut:

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