Choose Azure Event Grid

Selesai

Banyak aplikasi menggunakan model terbitkan-berlangganan untuk memberi tahu komponen terdistribusi bahwa sesuatu terjadi atau bahwa beberapa objek berubah. Misalkan Anda memiliki aplikasi berbagi musik dengan Web API yang berjalan di Azure. Saat pengguna mengunggah lagu baru, Anda perlu memberi tahu semua aplikasi seluler yang terinstal di perangkat pengguna di seluruh dunia yang tertarik dengan genre tersebut.

Dalam arsitektur ini, penerbit file suara tidak perlu tahu tentang salah satu pelanggan yang tertarik dengan musik bersama. Selain itu, kami ingin memiliki hubungan satu-ke-banyak di mana kami dapat memiliki beberapa pelanggan yang dapat secara opsional memutuskan apakah mereka tertarik dengan lagu baru ini. Azure Event Grid adalah solusi sempurna untuk arsitektur semacam ini.

Apa itu Azure Event Grid?

Azure Event Grid adalah layanan perutean peristiwa yang dikelola sepenuhnya yang berjalan di atas Azure Service Fabric. Event Grid mendistribusikan kejadian dari berbagai sumber, seperti akun penyimpanan Azure Blob atau Azure Media Services, ke penangan yang berbeda, seperti Azure Functions atau Webhooks. Event Grid dibuat untuk memudahkan membangun aplikasi berbasis kejadian dan tanpa server di Azure.

Event Grid mendukung sebagian besar layanan Azure sebagai penerbit atau pelanggan dan dapat digunakan dengan layanan pihak ketiga. Sistem ini menyediakan sistem Olahpesan yang dapat diskalakan secara dinamis, berbiaya rendah, yang memungkinkan penerbit untuk memberi tahu pelanggan tentang perubahan status. Ilustrasi berikut ini memperlihatkan Azure Event Grid menerima pesan dari beberapa sumber dan mendistribusikannya ke penangan kejadian berdasarkan langganan.

Ada beberapa konsep di Azure Event Grid yang menghubungkan sumber ke pelanggan:

  • Kejadian: Apa yang terjadi.
  • Sumber kejadian: Dimana kejadian itu terjadi.
  • Topik: Titik akhir tempat penerbit mengirim kejadian.
  • Langganan kejadian: Mekanisme titik akhir atau bawaan untuk merutekan kejadian, kadang-kadang ke beberapa penangan. Handler juga menggunakan langganan untuk memfilter peristiwa masuk dengan cerdas.
  • Penangan kejadian: Aplikasi atau layanan bereaksi terhadap kejadian.

Ilustrasi berikut ini memperlihatkan Azure Event Grid yang diposisikan di antara beberapa sumber kejadian dan beberapa penangan kejadian. Sumber peristiwa mengirim peristiwa ke Event Grid, dan Event Grid meneruskan peristiwa yang relevan kepada pelanggan. Event Grid menggunakan topik untuk memutuskan peristiwa mana yang akan dikirim ke penangan mana. Sumber peristiwa menandai setiap peristiwa dengan satu atau beberapa topik, dan penanganan aktivitas berlangganan topik yang mereka minati.

Diagram of various event sources sending messages as topics to the Event Grid which in turn sends messages to subscribing event handlers.

Apa itu kejadian?

Kejadian adalah pesan data yang melewati Event Grid yang menjelaskan apa yang telah terjadi. Setiap kejadian mandiri, dapat mencapai 64 KB, dan berisi beberapa informasi berdasarkan skema yang ditentukan oleh Event Grid:

[
  {
    "topic": string,
    "subject": string,
    "id": string,
    "eventType": string,
    "eventTime": string,
    "data":{
      object-unique-to-each-publisher
    },
    "dataVersion": string,
    "metadataVersion": string
  }
]
Bidang Deskripsi
topik Jalur sumber daya lengkap ke sumber kejadian. Event Grid memberikan nilai ini.
subject Jalur yang ditentukan penerbit ke subjek kejadian.
id Pengidentifikasi unik untuk kejadian.
eventType Salah satu jenis kejadian terdaftar untuk sumber kejadian ini. Anda dapat membuat filter terhadap nilai ini, misalnya, , CustomerCreated, BlobDeletedHttpRequestReceived, dll.
eventTime Waktu kejadian dihasilkan berdasarkan waktu UTC penyedia.
data Informasi spesifik yang relevan dengan jenis kejadian. Misalnya: peristiwa tentang file baru yang dibuat di Azure Storage memiliki detail tentang file tersebut, seperti lastTimeModified nilai . Atau, kejadian pada Event Hubs memiliki URL file Capture. Bidang ini bersifat opsional.
dataVersion Versi skema objek data. Penerbit mendefinisikan versi skema.
metadataVersion Versi skema metadata peristiwa. Event Grid mendefinisikan skema properti tingkat atas. Event Grid memberikan nilai ini.

Tip

Event Grid mengirimkan kejadian untuk menunjukkan sesuatu telah terjadi atau berubah. Namun,objek aktual yang diubah bukan bagian dari data kejadian. Sebaliknya, URL atau pengidentifikasi sering diteruskan untuk mereferensikan objek yang diubah.

Apa itu sumber kejadian?

Sumber kejadian bertanggung jawab untuk mengirim kejadian ke Event Grid. Setiap sumber kejadian terkait dengan satu atau beberapa jenis peristiwa. Misalnya, Azure Storage adalah sumber kejadian untuk kejadian yang dibuat blob. IoT Hub adalah sumber kejadian untuk kejadian yang dibuat perangkat. Aplikasi Anda adalah sumber kejadian untuk kejadian kustom yang Anda tentukan. Kita akan melihat sumber kejadian secara lebih rinci dalam sekejap.

Azure Event Grid memiliki konsep penerbit acara yang sering dikacaukan dengan sumber acara. Penerbit peristiwa adalah pengguna atau organisasi yang memutuskan untuk mengirim peristiwa ke Event Grid. Misalnya, Microsoft menerbitkan kejadian untuk beberapa layanan Azure. Anda dapat menerbitkan kejadian dari aplikasi Anda sendiri. Organisasi yang menyelenggarakan layanan di luar Azure dapat menerbitkan kejadian melalui Event Grid. Sumber peristiwa adalah layanan khusus yang menghasilkan peristiwa untuk penerbit tersebut. Meskipun kedua istilah tersebut sedikit berbeda, untuk tujuan unit ini kita akan menggunakan "penerbit" dan "sumber peristiwa" secara bergantian untuk mewakili entitas yang mengirim pesan ke Event Grid.

Apa itu topik kejadian?

Topik kejadian mengkategorikan kejadian ke dalam grup. Topik diwakili oleh titik akhir publik dan merupakan tempat sumber kejadian mengirim kejadian ke. Saat mendesain aplikasi, Anda dapat memutuskan berapa banyak topik yang akan dibuat. Solusi yang lebih besar akan membuat topik khusus untuk setiap kategori kejadian terkait, sementara solusi yang lebih kecil mungkin mengirim semua kejadian ke satu topik. Misalnya, pertimbangkan aplikasi yang mengirimkan kejadian yang terkait dengan memodifikasi akun pengguna dan memproses pesanan. Tidak mungkin ada penangan kejadian yang menginginkan kedua kategori kejadian tersebut. Buat dua topik khusus dan biarkan penangan kejadian berlangganan yang menarik bagi mereka. Pelanggan kejadian dapat memfilter jenis kejadian yang mereka inginkan dari topik tertentu.

Topik dibagi menjadi topik sistem topik, dan kustom.

Topik sistem

Topik sistem adalah topik bawaan yang disediakan oleh layanan Azure. Anda tidak melihat topik sistem di langganan Azure Anda karena penerbit memiliki topik tersebut, tetapi Anda bisa berlangganan topik tersebut. Untuk berlangganan, berikan informasi tentang sumber daya tempat Anda ingin menerima peristiwa. Selama Anda memiliki akses ke sumber daya, Anda dapat berlangganan kejadiannya.

Topik kustom

Topik kustom adalah aplikasi dan topik pihak ketiga. Saat Anda membuat atau diberi akses ke topik kustom, Anda akan melihat topik kustom tersebut di langganan Anda.

Apa itu langganan kejadian?

Langganan Kejadian menentukan kejadian mana pada topik yang ingin diterima oleh penangan kejadian. Langganan juga dapat memfilter kejadian berdasarkan jenis atau subjeknya, sehingga Anda dapat memastikan penangan kejadian hanya menerima kejadian yang relevan.

Apa itu penanganan kejadian?

Penangan kejadian (terkadang disebut sebagai "pelanggan" kejadian) adalah komponen apa pun (aplikasi atau sumber daya) yang dapat menerima kejadian dari Event Grid. Misalnya, Azure Functions dapat menjalankan kode sebagai respons terhadap lagu baru yang ditambahkan ke akun penyimpanan Blob. Pelanggan dapat memutuskan peristiwa mana yang ingin mereka tangani dan Event Grid akan secara efisien memberi tahu setiap pelanggan yang tertarik ketika acara baru tersedia; tidak diperlukan polling.

Tipe sumber kejadian

Jenis sumber daya Azure berikut ini dapat menghasilkan peristiwa:

Layanan Azure yang mendukung topik sistem

Berikut adalah beberapa layanan Azure yang mendukung topik sistem. Untuk daftar lengkap layanan Azure yang mendukung topik sistem, lihat Topik sistem di Azure Event Grid.

  • Langganan Azure dan Grup Sumber Daya: Langganan dan grup sumber daya menghasilkan kejadian yang terkait dengan operasi manajemen di Azure. Misalnya, ketika pengguna membuat komputer virtual, sumber ini menghasilkan kejadian.
  • Registri kontainer: Layanan Azure Container Registry menghasilkan kejadian saat gambar dalam registri ditambahkan, dihapus, atau diubah.
  • Azure Event Hubs: Azure Event Hubs dapat digunakan untuk memproses dan menyimpan peristiwa dari berbagai sumber data, biasanya terkait pengelogan atau telemetri. Azure Event Hubs dapat menghasilkan peristiwa ke Event Grid saat file diambil.
  • Service Bus:Service bus dapat menghasilkan kejadian ke Event Grid ketika ada pesan aktif tanpa pendengar aktif.
  • Akun Storage: Akun Storage dapat menghasilkan peristiwa saat pengguna menambahkan blob, file, entri tabel, atau pesan antrean. Anda dapat menggunakan akun blob dan akun V2 tujuan umum sebagai sumber kejadian.
  • Layanan Media: Layanan Media menghosting media video dan audio dan menyediakan fitur manajemen tingkat lanjut untuk file media. Layanan Media dapat menghasilkan kejadian ketika pekerjaan pengkodean dimulai atau diselesaikan pada file video.
  • Hub Azure IoT: IoT Hub berkomunikasi dengan dan mengumpulkan telemetri dari perangkat IoT. Ini dapat menghasilkan kejadian setiap kali komunikasi tersebut tiba.

Untuk informasi selengkapnya, lihat Topik sistem di Azure Event Grid.

Topik kustom

Anda dapat membuat peristiwa kustom dengan menggunakan REST API, atau dengan Azure SDK di Java, GO, .NET, Node, Python, dan Ruby. Misalnya, Anda dapat membuat kejadian kustom di fitur Web Apps di Azure App Service. Ini dapat terjadi dalam peran pekerja ketika mengambil pesan dari antrian penyimpanan.

Integrasi mendalam dengan beragam sumber kejadian di Azure ini memastikan bahwa Event Grid dapat mendistribusikan kejadian yang terkait dengan hampir semua sumber daya Azure.

Penangan kejadian

Tipe objek berikut di Azure bisa menerima dan menangani kejadian dari Event grid:

  • Azure Functions: Kode kustom yang berjalan di Azure, tanpa perlu konfigurasi eksplisit dari server atau kontainer virtual host. Gunakan fungsi Azure sebagai penangan kejadian saat Anda ingin memberi kode respons kustom untuk kejadian tersebut.
  • Azure Logic Apps: Gunakan Logic Apps untuk menerapkan proses bisnis untuk memproses peristiwa Event Grid. Anda tidak membuat webhook secara eksplisit dalam skenario ini. Webhook dibuat untuk Anda secara otomatis saat Anda mengonfigurasi aplikasi logika untuk menangani kejadian dari Azure Event Grid.
  • Webhooks: Webhook adalah API web yang mengimplementasikan arsitektur push. Anda juga dapat memproses peristiwa menggunakan runbook Azure Automation. Webhook mendukung pemrosesan peristiwa dengan menggunakan runbook otomatis. Anda membuat webhook untuk runbook dan kemudian menggunakan penanganan webhook.
  • Azure Event Hubs: Gunakan Azure Event Hubs saat solusi Anda mendapatkan peristiwa dari Event Grid lebih cepat daripada yang bisa diprosesnya. Setelah kejadian berada di event hub, aplikasi Anda dapat memproses kejadian dari pusat kejadian dengan jadwalnya sendiri.
  • Azure Service Bus: Anda dapat menggunakan antrean atau topik Layanan sebagai penanganan untuk peristiwa dari Event Grid.
  • Antrean penyimpanan: Gunakan Queue Storage untuk menerima peristiwa yang perlu ditarik. Anda dapat menggunakan Queue Storage saat memiliki proses jangka panjang yang membutuhkan waktu terlalu lama untuk merespons. Dengan mengirim peristiwa ke Queue Storage, aplikasi dapat menarik dan memproses peristiwa dengan jadwalnya sendiri.
  • Microsoft Power Automate: Power Automate juga menghosting alur kerja, tetapi lebih mudah digunakan oleh staf nonteknis.

Untuk informasi selengkapnya, lihat Penanganan Aktivitas.

Haruskah Anda menggunakan Event Grid?

Gunakan Event Grid saat Anda memerlukan fitur ini:

  • Kesederhanaan: Sangat mudah untuk menghubungkan sumber ke pelanggan di Event Grid.
  • Pemfilteran tingkat lanjut: Langganan memiliki kontrol yang erat atas kejadian yang mereka terima dari sebuah topik.
  • Fan-out: Anda dapat berlangganan jumlah titik akhir yang tidak terbatas ke kejadian dan topik yang sama.
  • Keandalan: Event Grid mencoba kembali pengiriman kejadian hingga 24 jam untuk setiap langganan.
  • Bayar per kejadian: Bayar hanya untuk jumlah kejadian yang Anda kirimkan.

Event Grid adalah sistem distribusi kejadian yang sederhana namun serbaguna. Gunakan untuk memberikan acara diskrit kepada pelanggan, yang akan menerima kejadian tersebut dengan andal dan cepat. Kami memiliki satu model olahpesan lagi untuk diperiksa; bagaimana jika kita ingin mengirimkan aliran besar peristiwa? Dalam skenario ini, Event Grid bukanlah solusi yang bagus karena dirancang untuk pengiriman satu kejadian sekaligus. Sebagai gantinya, kita perlu beralih ke layanan Azure lain: Event Hubs.