Apa itu Azure Event Grid?

Azure Event Grid adalah layanan terbitkan-berlangganan yang sangat dapat diskalakan dan dikelola sepenuhnya untuk distribusi pesan. Event Grid menawarkan pola konsumsi pesan yang fleksibel dan menggunakan protokol Message Queuing Telemetry Transport (MQTT) dan HTTP. Dengan Event Grid, Anda dapat membangun alur data dengan data perangkat, mengintegrasikan aplikasi, dan membangun arsitektur tanpa server berbasis peristiwa.

Klien dapat mempublikasikan dan berlangganan pesan melalui protokol MQTT v3.1.1 dan v5.0 untuk mendukung solusi Internet of Things (IoT). Melalui HTTP, Anda dapat menggunakan Event Grid untuk membangun solusi berbasis peristiwa di mana layanan penerbit mengumumkan perubahan status sistem (peristiwa) ke aplikasi pelanggan. Anda dapat mengonfigurasi Event Grid untuk mengirim peristiwa ke pelanggan (pengiriman push), atau pelanggan dapat terhubung ke Event Grid untuk membaca peristiwa (menarik pengiriman). Event Grid mendukung spesifikasi CloudEvents 1.0 untuk memberikan interoperabilitas di seluruh sistem.

Diagram yang memperlihatkan penerbit dan pelanggan dengan menggunakan protokol MQTT dan HTTP.

Fitur inti Azure Event Grid

Event Grid memiliki dua fitur utama:

Pesan MQTT: Perangkat dan aplikasi IoT dapat berkomunikasi satu sama lain melalui MQTT. Anda juga dapat menggunakan Event Grid untuk merutekan pesan MQTT ke layanan Azure atau titik akhir kustom untuk analisis data, visualisasi, atau penyimpanan lebih lanjut. Dengan menggunakan integrasi ini dengan layanan Azure, Anda dapat membangun alur data yang dimulai dengan penyerapan data dari perangkat IoT Anda.

Distribusi data dengan menggunakan mode pengiriman push dan pull: Pada titik mana pun dalam alur data, aplikasi HTTP dapat menggunakan pesan dengan menggunakan API push atau pull. Sumber data mungkin menyertakan data klien MQTT, tetapi juga mencakup sumber data berikut yang mengirim peristiwa mereka melalui HTTP:

  • Layanan Azure
  • Aplikasi kustom Anda
  • Sistem perangkat lunak mitra eksternal sebagai layanan (SaaS)

Mekanisme pengiriman push Event Grid mengirim data ke tujuan yang menyertakan webhook aplikasi dan layanan Azure Anda sendiri. Bagian berikut menjelaskan setiap fitur.

Pesan MQTT

Klien Anda dapat berkomunikasi menggunakan nama topik MQTT khusus dengan menggunakan model pesan publish-subscribe. Event Grid mendukung klien yang menerbitkan dan berlangganan pesan melalui MQTT v3.1.1, MQTT v3.1.1 melalui WebSocket, MQTT v5, dan MQTT v5 melalui WebSocket.

Event Grid juga mendukung perangkat dan layanan yang mengirim pesan MQTT melalui HTTPS, yang menyederhanakan integrasi dengan klien non-MQTT. Anda dapat mengirim pesan MQTT ke cloud untuk analisis data, penyimpanan, dan visualisasi, di antara kasus penggunaan lainnya. Fitur ini sedang dalam tahap pratinjau.

Event Grid terintegrasi dengan Operasional Azure IoT untuk menghubungkan kemampuan broker MQTT-nya di tepi dengan kemampuan broker MQTT Event Grid di cloud. Azure IoT MQTT broker adalah broker MQTT terdistribusi untuk edge computing yang berjalan di klaster Kubernetes yang mendukung Azure Arc, tersedia sebagai bagian dari Operasional Azure IoT.

Fitur broker MQTT di Event Grid sangat ideal untuk skenario otomotif, mobilitas, dan manufaktur, antara lain. Untuk mempelajari cara membangun solusi yang aman dan dapat diskalakan untuk menghubungkan jutaan klien MQTT ke cloud dengan menggunakan layanan olahpesan dan analitik data Azure, lihat arsitektur referensi otomotif dan manufaktur .

Diagram yang menunjukkan komunikasi MQTT dua arah dengan klien penerbit dan pelanggan.

Sorotan dukungan olahpesan MQTT di Event Grid:

  • DukunganMQTT v3.1.1 dan MQTT v5.0: Menggunakan pustaka klien MQTT sumber terbuka untuk berkomunikasi dengan layanan.
  • Topik kustom dengan dukungan wildcard: Menggunakan struktur topik Anda sendiri.
  • Model pengiriman pesan publikasi-berlangganan: Berkomunikasi secara efisien dengan menggunakan pola pesan satu-ke-banyak, banyak-ke-satu, dan satu-ke-satu.
  • Integrasi cloud bawaan: Merutekan pesan MQTT Anda ke layanan Azure atau webhook kustom untuk diproses lebih lanjut.
  • Model kontrol aksesyang fleksibel dan terperinci: Mengelompokkan klien dan topik untuk menyederhanakan manajemen kontrol akses. Menggunakan dukungan variabel dalam templat topik untuk kontrol akses halus.
  • Metode autentikasi broker MQTT: Menggunakan autentikasi sertifikat X.509, standar autentikasi industri untuk perangkat IoT. Menggunakan autentikasi ID Microsoft Entra, standar autentikasi Azure untuk aplikasi. Menggunakan pola autentikasi fleksibel seperti autentikasi OAuth 2.0 JSON Web Token (JWT), yang ringan dan aman untuk klien MQTT yang tidak disediakan di Azure. Menggunakan autentikasi webhook kustom, yang memungkinkan titik akhir HTTP eksternal (webhook) untuk mengautentikasi koneksi MQTT secara dinamis. Metode ini menggunakan validasi JWT Microsoft Entra ID untuk memastikan akses yang aman.
  • Dukungan Transport Layer Security (TLS) 1.2 dan TLS 1.3: Mengamankan komunikasi klien Anda dengan menggunakan protokol enkripsi yang kuat.
  • Dukungan multi-sesi: Menghubungkan aplikasi Anda dengan beberapa sesi aktif untuk memastikan keandalan dan skalabilitas.
  • MQTT melalui WebSocket: Memungkinkan konektivitas untuk klien di lingkungan yang dibatasi firewall.
  • Nama domain kustom: Mendukung penugasan nama domain Anda sendiri ke endpoint MQTT di namespace Event Grid, yang meningkatkan keamanan dan menyederhanakan konfigurasi klien.
  • Peristiwa siklus hidup klien: Mendukung aplikasi yang bereaksi terhadap kejadian terkait status koneksi klien atau operasi sumber daya klien.
  • HTTP Publish: Mendukung perangkat dan layanan yang mengirim pesan MQTT ke Event Grid melalui HTTPS, yang memudahkan integrasi dengan klien non-MQTT.
  • MQTT Retain: Memastikan bahwa pesan terakhir yang dikenal pada suatu topik secara otomatis dikirimkan ke pelanggan baru, sehingga memungkinkan sinkronisasi status secara instan.
  • Langganan bersama: Mendukung beberapa klien yang mengonsumsi pesan dari satu langganan sebagai satu kelompok, dengan broker mendistribusikan pesan di antara mereka untuk pemrosesan dengan pembagian beban yang seimbang dan dapat diskalakan.
  • Pengenal langganan: Mendukung klien MQTT 5 yang menandai setiap langganan dengan ID numerik unik, yang memudahkan identifikasi langganan mana yang diterima sesuai dengan pesan yang diterima ketika klien mengelola beberapa langganan.

Untuk informasi selengkapnya tentang broker MQTT, lihat artikel berikut ini:

Pesan peristiwa (HTTP)

Event Grid mendukung pengiriman peristiwa dengan metode push dan pull menggunakan HTTP. Dengan pengiriman push, Anda mendefinisikan tujuan dalam langganan acara, dan Event Grid mengirimkan acara ke tujuan tersebut. Dengan pengiriman tarik, aplikasi langganan terhubung ke Event Grid untuk mengonsumsi peristiwa. Event Grid mendukung pengiriman pull untuk topik dalam namespace.

Diagram yang menunjukkan pengiriman push dan pengiriman tarik dengan jenis sumber daya yang terlibat.

Penanganan peristiwa

Dengan pengiriman push, langganan event adalah sumber daya konfigurasi generik yang Anda gunakan untuk mendefinisikan event handler atau tujuan tempat Event Grid mengirim event. Misalnya, Anda dapat mengirim data ke webhook, fungsi Azure, atau hub peristiwa. Untuk daftar lengkap penangan event yang didukung, lihat:

  • Pemroses kejadian didukung pada topik namespace.
  • Penanganan aktivitas didukung pada topik kustom, sistem, domain, dan mitra.

Pengiriman push vs. pengiriman penarikan

Panduan umum berikut membantu Anda memutuskan kapan harus menggunakan pengiriman penarikan atau pendorongan.

Penarikan pengiriman

  • Anda memerlukan kontrol penuh atas kapan menerima peristiwa. Misalnya, aplikasi Anda mungkin tidak tersedia setiap saat atau tidak cukup stabil. Anda juga dapat memproses data hanya pada waktu tertentu.
  • Anda memerlukan kontrol penuh atas konsumsi acara. Misalnya, layanan atau lapisan hilir di aplikasi konsumen Anda mungkin memiliki masalah yang mencegah Anda memproses peristiwa. Dalam kasus tersebut, aplikasi konsumen dapat menggunakan pull delivery API untuk merilis event yang sudah dibaca kembali ke broker untuk dikirim nanti.
  • Anda ingin menggunakan tautan privat saat menerima peristiwa, yang hanya dimungkinkan dengan pengiriman pull, bukan pengiriman push.
  • Anda tidak dapat mengekspos endpoint dan menggunakan push delivery, tetapi Anda dapat terhubung ke Event Grid untuk mengonsumsi event.

Pengiriman push

  • Anda ingin menghindari polling yang terus-menerus untuk menentukan adanya perubahan status sistem. Sebagai gantinya, Anda ingin menggunakan Event Grid untuk mengirim peristiwa kepada Anda saat perubahan status terjadi.
  • Anda memiliki aplikasi yang tidak dapat melakukan panggilan keluar. Misalnya, organisasi Anda mungkin khawatir tentang penyelundupan data. Namun, aplikasi Anda dapat menerima peristiwa melalui sebuah titik akhir publik.

Sorotan Utama Model HTTP:

  • Model konsumsi peristiwa yang fleksibel: Mengonsumsi peristiwa dengan menggunakan mode pengiriman tarik atau dorong saat Anda menggunakan HTTP.
  • Event sistem: Mulai berjalan dengan event layanan Azure bawaan.
  • Peristiwa aplikasi Anda sendiri: Gunakan Event Grid untuk merutekan, memfilter, dan mengirimkan peristiwa kustom dengan andal dari aplikasi Anda.
  • Peristiwa mitra: Berlangganan peristiwa penyedia SaaS mitra Anda dan memprosesnya di Azure.
  • Pemfilteran tingkat lanjut: Filter pada jenis peristiwa atau atribut peristiwa lainnya untuk memastikan penanganan aktivitas atau aplikasi konsumen Anda hanya menerima peristiwa yang relevan.
  • Keandalan: Pengiriman push memiliki mekanisme coba lagi 24 jam dengan backoff eksponensial untuk memastikan pengiriman event. Jika Anda menggunakan metode penarikan, aplikasi Anda memiliki kontrol penuh atas konsumsi peristiwa.
  • Throughput tinggi: Bangun solusi terintegrasi dengan volume tinggi menggunakan Event Grid.
  • Nama domain kustom: Tetapkan nama domain Anda sendiri ke endpoint HTTP di namespace Event Grid, yang meningkatkan keamanan dan menyederhanakan konfigurasi klien.

Untuk informasi lebih lanjut, baca artikel berikut:

Kasus penggunaan

Untuk daftar kasus penggunaan tempat Anda dapat menggunakan Event Grid, lihat Kasus penggunaan.

Wilayah yang didukung

Fitur topik broker MQTT dan namespace tersedia di wilayah berikut.

Wilayah Wilayah Wilayah Wilayah
Australia Timur Australia Tenggara Australia Tengah Australia Tengah 2
Brasil Selatan Brasil Tenggara Kanada Tengah Kanada Timur
India Tengah US Tengah Asia Timur US Timur
US Timur 2 US Barat Prancis Tengah Prancis Selatan
Jerman Utara Jerman Barat Tengah Israel Tengah Italia Utara
Jepang Timur Jepang Barat Korea Tengah Korea Selatan
Meksiko Tengah US Tengah Utara Eropa Utara Norwegia Timur
Polandia Tengah Afrika Selatan Barat Afrika Selatan Utara US Tengah Selatan
India Selatan Asia Tenggara Spanyol Tengah Swedia Tengah
Swedia Selatan Swiss Utara Swiss Barat UAE Utara
UAE Tengah UK Selatan UK Barat Eropa Barat
Barat AS 2 Barat AS 3 Barat Sentral AS Belgia Tengah