Memahami domain kejadian untuk mengelola topik Azure Event Grid

Domain peristiwa adalah alat manajemen untuk sejumlah besar topik Event Grid yang terkait dengan aplikasi yang sama. Anda dapat menganggapnya sebagai meta-topik yang dapat memiliki ribuan topik individual. Ini menyediakan satu titik akhir penerbitan untuk semua topik di domain. Saat menerbitkan peristiwa, penerbit harus menentukan topik target di domain yang ingin diterbitkan. Penerbit dapat mengirim array atau batch peristiwa di mana peristiwa dikirim ke topik yang berbeda di domain. Lihat bagian Menerbitkan peristiwa ke domain peristiwa untuk detailnya.

Domain juga memberi Anda kontrol autentikasi dan otorisasi atas setiap topik sehingga Anda dapat mempartisi penyewa Anda. Artikel ini menjelaskan cara menggunakan domain kejadian untuk mengelola alur kejadian kustom ke berbagai organisasi bisnis, pelanggan, atau aplikasi Anda. Gunakan domain kejadian untuk:

  • Mengelola arsitektur kejadian multi-penyewa dalam skala besar.
  • Mengelola autentikasi dan otorisasi Anda.
  • Partisi topik Anda tanpa mengelola masing-masing satu per satu.
  • Hindari penerbitan satu per satu ke setiap titik akhir topik Anda.

Catatan

Domain peristiwa tidak dimaksudkan untuk mendukung skenario siaran di mana peristiwa dikirim ke domain dan setiap topik di domain menerima salinan peristiwa. Saat menerbitkan peristiwa, penerbit harus menentukan topik target di domain yang ingin diterbitkan. Jika penerbit ingin menerbitkan payload peristiwa yang sama ke beberapa topik di domain, penerbit perlu menduplikasi payload peristiwa, dan mengubah nama topik, dan menerbitkannya ke Event Grid menggunakan titik akhir domain, baik secara individual atau sebagai batch.

Contoh kasus penggunaan

Domain peristiwa paling mudah dijelaskan menggunakan contoh. Misalnya Anda menjalankan Contoso Construction Machinery, di mana Anda memproduksi traktor, peralatan penggalian, dan mesin berat lainnya. Sebagai bagian dari menjalankan bisnis, Anda mendorong informasi real-time kepada pelanggan tentang pemeliharaan peralatan, kesehatan sistem, dan pembaruan kontrak. Semua informasi ini masuk ke berbagai titik akhir termasuk aplikasi Anda, titik akhir pelanggan, dan infrastruktur lain yang telah disiapkan pelanggan.

Domain peristiwa memungkinkan Anda untuk memodelkan Contoso Construction Machinery sebagai entitas peristiwa tunggal. Setiap pelanggan Anda ditunjukkan sebagai topik dalam domain. Autentikasi dan otorisasi ditangani menggunakan ID Microsoft Entra. Setiap pelanggan Anda dapat berlangganan topik mereka dan menerima peristiwa yang dikirim kepada mereka. Akses terkelola melalui domain peristiwa memastikan mereka hanya dapat mengakses topik mereka.

Ini juga memberi Anda satu titik akhir, tempat Anda dapat menerbitkan semua peristiwa pelanggan Anda. Event Grid akan mengurus untuk memastikan setiap topik hanya mengetahui peristiwa yang tercakup dalam penyewanya.

Image showing an example use case for using Event Grid domains.

Manajemen akses

Dengan domain, Anda akan mendapatkan otorisasi mendetail dan kontrol autentikasi atas setiap topik melalui kontrol akses berbasis peran Azure (Azure RBAC). Anda dapat menggunakan peran ini untuk membatasi setiap penyewa di aplikasi Anda hanya pada topik yang ingin Anda beri akses kepada mereka. Azure RBAC di domain kejadian bekerja dengan cara yang sama seperti kontrol akses terkelola bekerja di seluruh Event Grid dan Azure. Gunakan Azure RBAC untuk membuat dan menerapkan definisi peran kustom di domain kejadian.

Peran bawaan

Azure Event Grid memiliki dua definisi peran bawaan untuk membuat Azure RBAC lebih mudah untuk bekerja dengan domain kejadian. Peran ini adalah Kontributor EventGrid EventSubscription dan EventGrid EventSubscription Reader. Anda akan menetapkan peran ini kepada pengguna yang perlu berlangganan topik di domain kejadian Anda. Anda mencakup penetapan peran hanya untuk topik yang pengguna perlu berlangganan. Untuk informasi tentang peran ini, lihat Peran bawaan untuk Azure Event Grid.

Berlangganan ke topik

Berlangganan peristiwa untuk topik dalam domain peristiwa sama dengan membuat langganan peristiwa pada topik kustom atau berlangganan peristiwa dari layanan Azure.

Penting

Topik domain dianggap sebagai sumber daya yang dikelola secara otomatis di Azure Event Grid. Anda dapat membuat langganan kejadian di cakupan topik domain tanpa membuat topik domain. Dalam hal ini, Azure Event Grid akan secara otomatis membuat topik domain atas nama Anda. Tentu saja, Anda masih dapat memilih untuk membuat topik domain secara manual. Perilaku ini memungkinkan Anda untuk mengkhawatirkan satu sumber daya yang lebih sedikit saat menangani sejumlah besar topik domain. Saat langganan terakhir ke topik domain dihapus, topik domain juga akan dihapus terlepas dari apakah topik domain dibuat secara manual atau dibuat secara otomatis.

Langganan cakupan domain

Domain kejadian juga memungkinkan langganan cakupan domain. Langganan peristiwa pada domain peristiwa menerima semua peristiwa yang dikirim ke domain terlepas dari topik tempat peristiwa dikirim. Langganan cakupan domain dapat berguna untuk tujuan manajemen dan audit.

Menerbitkan ke domain kejadian

Saat membuat domain kejadian, Anda akan diberi titik akhir penerbitan yang mirip dengan jika Anda telah membuat topik di Event Grid. Untuk menerbitkan peristiwa ke topik apa pun di domain peristiwa, dorong peristiwa ke titik akhir domain dengan cara yang sama seperti yang Anda lakukan untuk topik kustom. Satu-satunya perbedaan adalah Anda harus menentukan topik kejadian yang Anda inginkan. Misalnya, menerbitkan array peristiwa berikut akan mengirim peristiwa dengan "id": "1111" topik foo sementara peristiwa dengan "id": "2222" akan dikirim ke topik bar.

Saat menggunakan skema peristiwa cloud, tentukan nama topik Event Grid di domain sebagai nilai untuk source properti . Dalam contoh berikut, source properti diatur ke foo untuk peristiwa pertama dan ke bar untuk peristiwa kedua.

Jika Anda ingin menggunakan bidang lain untuk menentukan topik yang dimaksudkan di domain, tentukan pemetaan skema input saat membuat domain. Misalnya, jika Anda menggunakan REST API, gunakan properti properties.inputSchemaMapping kapan harus memetakan bidang tersebut ke properties.topic. Jika Anda menggunakan .NET SDK, gunakan EventGridJsonInputSchemaMapping. SDK lain juga mendukung pemetaan skema.

[{
  "source": "foo",
  "id": "1111",
  "type": "maintenanceRequested",
  "subject": "myapp/vehicles/diggers",
  "time": "2018-10-30T21:03:07+00:00",
  "data": {
    "make": "Contoso",
    "model": "Small Digger"
  },
	"specversion": "1.0"
},
{
  "source": "bar",
  "id": "2222",
  "type": "maintenanceCompleted",
  "subject": "myapp/vehicles/tractors",
  "time": "2018-10-30T21:04:12+00:00",
  "data": {
    "make": "Contoso",
    "model": "Big Tractor"
  },
	"specversion": "1.0"
}]

Domain kejadian menangani penerbitan topik untuk Anda. Daripada menerbitkan kejadian ke setiap topik yang Anda kelola secara individual, Anda dapat menerbitkan semua kejadian Anda ke titik akhir domain. Azure Event Grid memastikan setiap kejadian dikirim ke topik yang benar.

Harga

Domain kejadian menggunakan harga operasi yang sama dengan yang digunakan semua fitur lain di Azure Event Grid. Operasi bekerja sama di domain kejadian seperti yang dilakukan di topik kustom. Setiap masuknya kejadian ke domain kejadian adalah operasi dan setiap upaya pengiriman untuk kejadian adalah operasi.

Langkah berikutnya

Untuk mempelajari tentang menyiapkan domain kejadian, membuat topik, membuat langganan kejadian, dan menerbitkan kejadian, lihat Mengelola domain kejadian.