Bagikan melalui


Mulai cepat: Menerbitkan dan berlangganan pesan MQTT di Namespace Layanan Event Grid dengan portal Azure

Dalam artikel ini, Anda menggunakan portal Azure untuk melakukan tugas berikut:

  1. Membuat namespace Layanan Event Grid dan mengaktifkan broker MQTT
  2. Membuat sub sumber daya seperti klien, grup klien, dan ruang topik
  3. Memberikan akses kepada klien untuk menerbitkan dan berlangganan ruang topik
  4. Menerbitkan dan menerima pesan antar klien

Prasyarat

  • Buat akun gratis Azure Jika Anda tidak memiliki langganan Azure.
  • Baca gambaran umum Event Grid sebelum memulai tutorial ini, jika Anda baru menggunakan Azure Event Grid.
  • Pastikan port 8883 terbuka di firewall Anda. Sampel dalam tutorial ini menggunakan protokol MQTT, yang berkomunikasi melalui port 8883. Port ini dapat diblokir di beberapa lingkungan jaringan perusahaan dan pendidikan.
  • Anda memerlukan sertifikat klien X.509 untuk menghasilkan thumbprint dan mengautentikasi koneksi klien.

Membuat sampel sertifikat klien dan thumbprint

Jika Anda belum memiliki sertifikat, Anda dapat membuat sertifikat sampel menggunakan langkah CLI. Pertimbangkan untuk menginstal secara manual untuk Windows.

Setelah penginstalan Langkah berhasil, Anda harus membuka perintah di folder profil pengguna Anda (Jenis Win+R %USERPROFILE%).

  1. Untuk membuat sertifikat akar dan menengah, jalankan perintah berikut. Ingat kata sandi, yang perlu digunakan pada langkah berikutnya.

    step ca init --deployment-type standalone --name MqttAppSamplesCA --dns localhost --address 127.0.0.1:443 --provisioner MqttAppSamplesCAProvisioner
    
  2. Gunakan file CA yang dihasilkan untuk membuat sertifikat untuk klien pertama. Pastikan untuk menggunakan jalur yang benar untuk file sertifikasi dan rahasia dalam perintah.

    step certificate create client1-authn-ID client1-authn-ID.pem client1-authn-ID.key --ca .step/certs/intermediate_ca.crt --ca-key .step/secrets/intermediate_ca_key --no-password --insecure --not-after 2400h
    
  3. Untuk melihat thumbprint, jalankan perintah Langkah.

    step certificate fingerprint client1-authn-ID.pem
    
  4. Sekarang, buat sertifikat untuk klien kedua.

    step certificate create client2-authn-ID client2-authn-ID.pem client2-authn-ID.key --ca .step/certs/intermediate_ca.crt --ca-key .step/secrets/intermediate_ca_key --no-password --insecure --not-after 2400h
    
  5. Untuk melihat thumbprint yang akan digunakan dengan klien kedua, jalankan perintah Langkah.

    step certificate fingerprint client2-authn-ID.pem
    

Membuat namespace

  1. Masuk ke portal Microsoft Azure.

  2. Di bilah pencarian, ketik Namespace Layanan Event Grid, lalu pilih Namespace Layanan Event Grid dari daftar drop-down.

    Screenshot of searching for Event Grid namespace on Azure portal.

  3. Pada halaman Namespace Layanan Event Grid, pilih + Buat pada toolbar.

  4. Pada halaman Buat namespace layanan, ikuti langkah-langkah berikut:

    1. Pilih langganan Azure Anda.

    2. Pilih grup sumber daya yang sudah ada atau pilih Buat baru dan masukkan nama untuk grup sumber daya.

    3. Berikan nama unik untuk namespace layanan. Nama namespace harus unik per wilayah karena mewakili entri DNS. Jangan gunakan nama yang ditampilkan dalam gambar. Sebagai gantinya, buat nama Anda sendiri - harus antara 3-50 karakter dan hanya berisi nilai a-z, A-Z, 0-9, dan -.

    4. Pilih lokasi untuk namespace Layanan Event Grid. Saat ini, namespace Layanan Event Grid hanya tersedia di wilayah tertentu.

      Screenshot showing Event Grid namespace create flow basics tab.

  5. Pilih Tinjau + buat di bagian bawah halaman.

  6. Pada tab Tinjau + buat dari halaman Buat namespace , pilih Buat.

    Catatan

    Agar Mulai Cepat tetap sederhana, Anda hanya akan menggunakan halaman Dasar untuk membuat namespace. Untuk langkah-langkah terperinci tentang mengonfigurasi jaringan, keamanan, dan pengaturan lain di halaman panduan lainnya, lihat Membuat Namespace.

  7. Setelah penyebaran berhasil, pilih Buka sumber daya untuk menavigasi ke halaman Gambaran Umum Namespace Event Grid untuk namespace Anda.

  8. Di halaman Gambaran Umum, Anda melihat bahwa broker MQTT dalam status Dinonaktifkan . Untuk mengaktifkan broker MQTT, pilih tautan Dinonaktifkan , ini akan mengarahkan Anda ke halaman Konfigurasi.

  9. Pada halaman Konfigurasi , pilih opsi Aktifkan broker MQTT, lalu pilih Terapkan untuk menerapkan pengaturan.

    Screenshot showing Event Grid namespace configuration page to enable MQTT.

Membuat klien

  1. Di menu sebelah kiri, pilih Klien di bagian broker MQTT.

  2. Pada halaman Klien , pilih + Klien pada toolbar.

    Screenshot of the Clients page with Add button selected.

  3. Pada halaman Buat klien , masukkan nama untuk klien. Nama klien harus unik di namespace layanan.

  4. Nama autentikasi klien default ke nama klien. Untuk tutorial ini, ubah menjadi client1-authn-ID. Anda perlu menyertakan nama ini seperti Username dalam paket CONNECT.

  5. Dalam tutorial ini, Anda menggunakan autentikasi berbasis thumbprint. Sertakan thumbprint sertifikat klien pertama dalam Thumbprint Utama.

    Screenshot of client 1 configuration.

  6. Pilih Buat pada toolbar untuk membuat klien lain.

  7. Ulangi langkah-langkah di atas untuk membuat klien kedua bernama client2. Ubah nama autentikasi menjadi client2-authn-ID dan sertakan thumbprint sertifikat klien kedua dalam Thumbprint Utama.

    Screenshot of client 2 configuration.

    Catatan

    • Agar Mulai Cepat tetap sederhana, Anda akan menggunakan kecocokan Thumbprint untuk autentikasi. Untuk langkah-langkah terperinci tentang menggunakan rantai sertifikat CA X.509 untuk autentikasi klien, lihat autentikasi klien menggunakan rantai sertifikat.
    • Selain itu, kami menggunakan grup klien default $all , yang mencakup semua klien di namespace layanan untuk latihan ini. Untuk mempelajari selengkapnya tentang membuat grup klien kustom menggunakan atribut klien, lihat grup klien.

Membuat spasi topik

  1. Di menu sebelah kiri, pilih Ruang topik di bagian broker MQTT.

  2. Pada halaman Spasi topik, pilih + Ruang topik pada toolbar.

    Screenshot of Topic spaces page with create button selected.

  3. Berikan nama untuk ruang topik, pada halaman Buat ruang topik.

  4. Pilih + Tambahkan templat topik.

    Screenshot of Create topic space with the name.

  5. Masukkan contosotopics/topic1 untuk templat topik, lalu pilih Buat untuk membuat ruang topik.

    Screenshot of topic space configuration.

Mengonfigurasi kontrol akses menggunakan pengikatan izin

  1. Di menu sebelah kiri, pilih Pengikatan izin di bagian broker MQTT.

  2. Pada halaman Pengikatan izin, pilih + Pengikatan izin pada toolbar.

    Screenshot that shows the Permission bindings page with the Create button selected.

  3. Konfigurasikan pengikatan izin sebagai berikut:

    1. Berikan nama untuk pengikatan izin. Contohnya,contosopublisherbinding.

    2. Untuk nama grup klien, pilih $all.

    3. Untuk Nama ruang topik, pilih ruang topik yang Anda buat di langkah sebelumnya.

    4. Berikan izin Publisher ke grup klien pada ruang topik.

      Screenshot showing creation of first permission binding.

  4. Pilih Buat untuk membuat pengikatan izin.

  5. Buat satu lagi pengikatan izin (contososubscriberbinding) dengan memilih + Pengikatan izin pada toolbar.

  6. Berikan nama dan berikan akses pelanggan grup klien $all ke ContosoTopicSpace seperti yang ditunjukkan.

    Screenshot showing creation of second permission binding.

  7. Pilih Buat untuk membuat pengikatan izin.

Koneksi klien ke Namespace layanan EG menggunakan aplikasi MQTTX

  1. Untuk menerbitkan/berlangganan pesan MQTT, Anda dapat menggunakan salah satu alat favorit Anda. Untuk tujuan demonstrasi, publikasikan / berlangganan ditampilkan menggunakan aplikasi MQTTX, yang dapat diunduh dari https://mqttx.app/.

    Screenshot showing MQTTX app left rail to add new client.

  2. Mengonfigurasi client1 dengan

    • Nama sebagai client1 (nilai ini bisa apa saja)

    • ID Klien sebagai client1-session1 (ID Klien dalam paket CONNECT digunakan untuk mengidentifikasi ID sesi untuk koneksi klien)

    • Nama pengguna sebagai client1-authn-ID. Nilai ini harus cocok dengan nilai Nama Autentikasi Klien yang Anda tentukan saat membuat klien di portal Azure.

      Penting

      Nama pengguna harus cocok dengan nama autentikasi klien dalam metadata klien.

  3. Perbarui nama host ke nama host MQTT dari halaman Gambaran Umum namespace.

    Screenshot showing Event Grid namespace overview page, which has MQTT hostname.

  4. Perbarui port ke 8883.

  5. Alihkan SSL/TLS ke AKTIF.

  6. Alihkan SSL Secure ke AKTIF, untuk memastikan validasi sertifikat layanan.

  7. Pilih Sertifikat sebagai Ditandatangani Sendiri.

  8. Berikan jalur untuk file sertifikat klien.

  9. Berikan jalur untuk file kunci klien.

  10. Pengaturan lainnya dapat dibiarkan dengan nilai default yang telah ditentukan sebelumnya.

    Screenshot showing client 1 configuration part 1 on MQTTX app.

  11. Pilih Koneksi untuk menghubungkan klien ke broker MQTT.

  12. Ulangi langkah-langkah di atas untuk menyambungkan klien kedua2, dengan informasi autentikasi yang sesuai seperti yang ditunjukkan.

    Screenshot showing client 2 configuration part 1 on MQTTX app.

    Screenshot showing client 2 configuration part 2 on MQTTX app.

Menerbitkan/berlangganan menggunakan aplikasi MQTTX

  1. Setelah menyambungkan klien, untuk klien2, pilih tombol + Langganan Baru.

  2. Tambahkan contosotopics/topic1 sebagai topik dan pilih Konfirmasi. Anda dapat meninggalkan bidang lain dengan nilai default yang sudah ada.

    Screenshot showing subscription topic configuration on MQTTX app.

  3. Pilih klien1 di rel kiri.

  4. Untuk klien1, di atas kotak tulis pesan, ketik contosotopics/topic1 sebagai topik untuk diterbitkan.

  5. Buat pesan. Anda dapat menggunakan format apa pun atau JSON seperti yang ditunjukkan.

  6. Pilih tombol Kirim.

    Screenshot showing message publishing on the topic in MQTTX app.

  7. Pesan harus dilihat sebagai diterbitkan di klien 1.

    Screenshot showing message published on the topic in MQTTX app.

  8. Beralih ke klien2. Konfirmasikan bahwa klien2 menerima pesan.

    Screenshot showing the message received by the subscribing client on MQTTX app.

Langkah berikutnya