Jembatan MQTT - AWS IoT Greengrass

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Jembatan MQTT

Komponen jembatan MQTT (aws.greengrass.clientdevices.mqtt.Bridge) merelai pesan MQTT antara perangkat klien, Greengrass publish/subscribe, dan AWS IoT Core. Anda dapat menggunakan komponen ini untuk bertindak atas pesan MQTT dari perangkat klien komponen kustom dan mensinkronisasi perangkat klien dengan AWS Cloud.

catatan

Perangkat klien adalah perangkat IoT lokal yang terhubung ke perangkat inti Greengrass untuk mengirim pesan MQTT dan data yang akan diproses. Untuk informasi selengkapnya, lihat Berinteraksilah dengan perangkat IoT lokal.

Anda dapat menggunakan komponen ini untuk merelai pesan antara broker-broker pesan berikut:

  • MQTT lokal - Broker MQTT lokal menangani pesan antara perangkat klien dan perangkat inti.

  • Publikasi/berlangganan lokal - Broker pesan Greengrass lokal menangani pesan antar komponen pada perangkat inti. Untuk informasi lebih lanjut tentang cara berinteraksi dengan pesan-pesan ini dalam komponen Greengrass, lihat.Pesan lokal publikasi/berlangganan.

  • AWS IoT Core – Broker MQTT AWS IoT Core menangani pesan antara perangkat IoT dan tujuan AWS Cloud. Untuk informasi lebih lanjut tentang cara berinteraksi dengan pesan-pesan ini dalam komponen Greengrass, lihat.Publikasi/berlangganan pesan MQTT AWS IoT Core.

    catatan

    Jembatan MQTT menggunakan QoS 1 untuk mempublikasikan dan berlangganan AWS IoT Core, bahkan ketika perangkat klien menggunakan QoS 0 untuk mempublikasikan dan berlangganan broker MQTT lokal. Sebagai hasilnya, Anda mungkin melihat latensi tambahan ketika Anda menyampaikan pesan MQTT dari perangkat klien pada broker MQTT lokal ke AWS IoT Core. Untuk informasi lebih lanjut tentang konfigurasi MQTT pada perangkat inti, lihat Konfigurasikan pengaturan batas waktu dan cache MQTT.

Versi

Komponen ini memiliki versi berikut:

  • 2.2.x

  • 2.1.x

  • 2.0.x

Tipe

Komponen ini adalah komponen plugin (aws.greengrass.plugin). Inti Greengrass menjalankan komponen plugin dalam Java Virtual Machine (JVM) yang sama sebagai inti. Nucleus dimulai ulang saat Anda mengubah versi komponen ini di perangkat inti.

Komponen plugin menggunakan file log yang sama seperti inti Greengrass. Untuk informasi selengkapnya, lihat PemantauanAWS IoT Greengrasslog.

Untuk informasi selengkapnya, lihat Jenis komponen.

Sistem operasi

Komponen ini dapat diinstal pada perangkat inti yang menjalankan sistem operasi berikut:

  • Linux

  • Windows

Persyaratan

Komponen ini memiliki persyaratan sebagai berikut:

  • Jika Anda mengonfigurasi komponen broker MQTT perangkat inti untuk menggunakan port selain port default 8883, Anda harus menggunakan jembatan MQTT v2.1.0 atau yang lebih baru. Konfigurasikan untuk terhubung di port tempat broker beroperasi.

Dependensi

Saat Anda men-deploy komponen, AWS IoT Greengrass juga men-deploy versi dependensinya yang kompatibel. Ini berarti bahwa Anda harus memenuhi persyaratan untuk komponen dan semua dependensinya untuk berhasil men-deploy komponen. Bagian ini berisi daftar dependensi untuk versi yang dirilis dari komponen ini dan kendala versi semantik yang menentukan versi komponen untuk setiap dependensi. Anda juga dapat melihat dependensi untuk setiap versi komponen di konsol AWS IoT Greengrass tersebut. Pada halaman detail komponen, cari daftar Dependensi.

2.2.2

Tabel berikut mencantumkan dependensi untuk versi 2.2.2 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Auth perangkat klien >=2.2.0 <2.3.0 Keras
2.2.0

Tabel berikut mencantumkan dependensi untuk versi 2.2.0 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Auth perangkat klien >=2.2.0 <2.3.0 Keras
2.1.1

Tabel berikut mencantumkan dependensi untuk versi 2.1.1 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Auth perangkat klien >=2.0.0 <2.2.0 Keras
2.0.0 to 2.1.0

Tabel berikut mencantumkan dependensi untuk versi 2.0.0 hingga 2.1.0 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Auth perangkat klien >=2.0.0 <2.1.0 Keras

Untuk informasi selengkapnya tentang dependensi komponen, lihat referensi resep komponen.

Konfigurasi

Komponen ini menyediakan parameter konfigurasi berikut yang dapat Anda sesuaikan ketika Anda men-deploy komponen.

2.2.x
mqttTopicMapping

Pemetaan topik yang ingin Anda jembatani. Komponen ini berlangganan pesan pada topik sumber dan menerbitkan pesan yang diterimanya ke topik tujuan. Setiap pemetaan topik menentukan topik, jenis sumber, dan jenis tujuan.

Objek ini berisi informasi berikut:

topicMappingNameKey

Nama pemetaan topik ini. GantitopicMappingNameKuncidengan nama yang membantu Anda mengidentifikasi pemetaan topik ini.

Objek ini berisi informasi berikut:

topic

Filter topik atau topik yang akan dijembatani antara broker sumber dan target.

Anda dapat menggunakan+dan#Wildcard topik MQTT untuk menyampaikan pesan pada semua topik yang cocok dengan filter topik. Untuk informasi selengkapnya, lihat topik MQTT di Panduan Developer AWS IoT Core.

catatan

Untuk menggunakan wildcard topik MQTT denganPubsubbroker sumber, Anda harus menggunakan v2.6.0 atau yang lebih baruKomponen inti Greengrass.

targetTopicPrefix

Awalan untuk ditambahkan ke topik target saat komponen ini menyampaikan pesan.

source

Broker pesan sumber. Pilih dari salah satu pilihan berikut:

  • LocalMqtt – Broker MQTT lokal tempat perangkat klien berkomunikasi.

  • Pubsub – Broker pesan publikasi/berlangganan Greengrass lokal.

  • IotCore – Broker pesan MQTT AWS IoT Core.

    catatan

    Jembatan MQTT menggunakan QoS 1 untuk mempublikasikan dan berlangganan AWS IoT Core, bahkan ketika perangkat klien menggunakan QoS 0 untuk mempublikasikan dan berlangganan broker MQTT lokal. Sebagai hasilnya, Anda mungkin melihat latensi tambahan ketika Anda menyampaikan pesan MQTT dari perangkat klien pada broker MQTT lokal ke AWS IoT Core. Untuk informasi lebih lanjut tentang konfigurasi MQTT pada perangkat inti, lihat Konfigurasikan pengaturan batas waktu dan cache MQTT.

source dan target harus berbeda.

target

Target broker pesan. Pilih dari salah satu pilihan berikut:

  • LocalMqtt – Broker MQTT lokal tempat perangkat klien berkomunikasi.

  • Pubsub – Broker pesan publikasi/berlangganan Greengrass lokal.

  • IotCore – Broker pesan MQTT AWS IoT Core.

    catatan

    Jembatan MQTT menggunakan QoS 1 untuk mempublikasikan dan berlangganan AWS IoT Core, bahkan ketika perangkat klien menggunakan QoS 0 untuk mempublikasikan dan berlangganan broker MQTT lokal. Sebagai hasilnya, Anda mungkin melihat latensi tambahan ketika Anda menyampaikan pesan MQTT dari perangkat klien pada broker MQTT lokal ke AWS IoT Core. Untuk informasi lebih lanjut tentang konfigurasi MQTT pada perangkat inti, lihat Konfigurasikan pengaturan batas waktu dan cache MQTT.

source dan target harus berbeda.

brokerUri

(Opsional) URI dari broker MQTT lokal. Anda harus menentukan parameter ini jika Anda mengkonfigurasi broker MQTT untuk menggunakan port yang berbeda dari port default 8883. Gunakan format berikut, dan gantipelabuhandengan port tempat broker MQTT beroperasi:ssl://localhost:port.

Default: ssl://localhost:8883

contoh Contoh: Pembaruan gabungan konfigurasi

Pembaruan gabungan contoh berikut menentukan hal berikut:

  • Relai pesan dari perangkat klien keAWS IoT Corepada topik yang cocok denganclients/+/hello/worldFilter topik.

  • Relai pesan dari perangkat klien ke publish/subscribe lokal pada topik yang cocok denganclients/+/detectionsfilter topik, dan tambahkanevents/input/awalan untuk topik target. Topik target yang dihasilkan cocok denganevents/input/clients/+/detectionsFilter topik.

  • Relai pesan dari perangkat klien keAWS IoT Corepada topik yang cocok denganclients/+/statusfilter topik, dan tambahkan$aws/rules/StatusUpdateRule/awalan untuk topik target. Contoh ini menyampaikan pesan ini langsung keAWS IoTaturanmenamakanStatusUpdateRuleuntuk mengurangi biaya menggunakanPenggabungan dasar.

{ "mqttTopicMapping": { "ClientDeviceHelloWorld": { "topic": "clients/+/hello/world", "source": "LocalMqtt", "target": "IotCore" }, "ClientDeviceEvents": { "topic": "clients/+/detections", "targetTopicPrefix": "events/input/", "source": "LocalMqtt", "target": "Pubsub" }, "ClientDeviceCloudStatusUpdate": { "topic": "clients/+/status", "targetTopicPrefix": "$aws/rules/StatusUpdateRule/", "source": "LocalMqtt", "target": "IotCore" } } }
2.1.x
mqttTopicMapping

Pemetaan topik yang ingin Anda jembatani. Komponen ini berlangganan pesan pada topik sumber dan menerbitkan pesan yang diterimanya ke topik tujuan. Setiap pemetaan topik menentukan topik, jenis sumber, dan jenis tujuan.

Objek ini berisi informasi berikut:

topicMappingNameKey

Nama pemetaan topik ini. GantitopicMappingNameKuncidengan nama yang membantu Anda mengidentifikasi pemetaan topik ini.

Objek ini berisi informasi berikut:

topic

Filter topik atau topik yang akan dijembatani antara broker sumber dan target.

Jika Anda menentukan broker sumber LocalMqtt atau IotCore, Anda dapat menggunakan wildcard topik MQTT + dan # untuk merelai pesan pada semua topik yang cocok dengan filter topik. Untuk informasi selengkapnya, lihat topik MQTT di Panduan Developer AWS IoT Core.

source

Broker pesan sumber. Pilih dari salah satu pilihan berikut:

  • LocalMqtt – Broker MQTT lokal tempat perangkat klien berkomunikasi.

  • Pubsub – Broker pesan publikasi/berlangganan Greengrass lokal.

  • IotCore – Broker pesan MQTT AWS IoT Core.

    catatan

    Jembatan MQTT menggunakan QoS 1 untuk mempublikasikan dan berlangganan AWS IoT Core, bahkan ketika perangkat klien menggunakan QoS 0 untuk mempublikasikan dan berlangganan broker MQTT lokal. Sebagai hasilnya, Anda mungkin melihat latensi tambahan ketika Anda menyampaikan pesan MQTT dari perangkat klien pada broker MQTT lokal ke AWS IoT Core. Untuk informasi lebih lanjut tentang konfigurasi MQTT pada perangkat inti, lihat Konfigurasikan pengaturan batas waktu dan cache MQTT.

source dan target harus berbeda.

target

Target broker pesan. Pilih dari salah satu pilihan berikut:

  • LocalMqtt – Broker MQTT lokal tempat perangkat klien berkomunikasi.

  • Pubsub – Broker pesan publikasi/berlangganan Greengrass lokal.

  • IotCore – Broker pesan MQTT AWS IoT Core.

    catatan

    Jembatan MQTT menggunakan QoS 1 untuk mempublikasikan dan berlangganan AWS IoT Core, bahkan ketika perangkat klien menggunakan QoS 0 untuk mempublikasikan dan berlangganan broker MQTT lokal. Sebagai hasilnya, Anda mungkin melihat latensi tambahan ketika Anda menyampaikan pesan MQTT dari perangkat klien pada broker MQTT lokal ke AWS IoT Core. Untuk informasi lebih lanjut tentang konfigurasi MQTT pada perangkat inti, lihat Konfigurasikan pengaturan batas waktu dan cache MQTT.

source dan target harus berbeda.

brokerUri

(Opsional) URI dari broker MQTT lokal. Anda harus menentukan parameter ini jika Anda mengkonfigurasi broker MQTT untuk menggunakan port yang berbeda dari port default 8883. Gunakan format berikut, dan gantipelabuhandengan port tempat broker MQTT beroperasi:ssl://localhost:port.

Default: ssl://localhost:8883

contoh Contoh: Pembaruan gabungan konfigurasi

Pemutakhiran konfigurasi contoh berikut menetapkan untuk menyampaikan pesan dari perangkat klien keAWS IoT Corepadaclients/MyClientDevice1/hello/worlddanclients/MyClientDevice2/hello/worldtopik.

{ "mqttTopicMapping": { "ClientDevice1HelloWorld": { "topic": "clients/MyClientDevice1/hello/world", "source": "LocalMqtt", "target": "IotCore" }, "ClientDevice2HelloWorld": { "topic": "clients/MyClientDevice2/hello/world", "source": "LocalMqtt", "target": "IotCore" } } }
2.0.x
mqttTopicMapping

Pemetaan topik yang ingin Anda jembatani. Komponen ini berlangganan pesan pada topik sumber dan menerbitkan pesan yang diterimanya ke topik tujuan. Setiap pemetaan topik menentukan topik, jenis sumber, dan jenis tujuan.

Objek ini berisi informasi berikut:

topicMappingNameKey

Nama pemetaan topik ini. GantitopicMappingNameKuncidengan nama yang membantu Anda mengidentifikasi pemetaan topik ini.

Objek ini berisi informasi berikut:

topic

Filter topik atau topik yang akan dijembatani antara broker sumber dan target.

Jika Anda menentukan broker sumber LocalMqtt atau IotCore, Anda dapat menggunakan wildcard topik MQTT + dan # untuk merelai pesan pada semua topik yang cocok dengan filter topik. Untuk informasi selengkapnya, lihat topik MQTT di Panduan Developer AWS IoT Core.

source

Broker pesan sumber. Pilih dari salah satu pilihan berikut:

  • LocalMqtt – Broker MQTT lokal tempat perangkat klien berkomunikasi.

  • Pubsub – Broker pesan publikasi/berlangganan Greengrass lokal.

  • IotCore – Broker pesan MQTT AWS IoT Core.

    catatan

    Jembatan MQTT menggunakan QoS 1 untuk mempublikasikan dan berlangganan AWS IoT Core, bahkan ketika perangkat klien menggunakan QoS 0 untuk mempublikasikan dan berlangganan broker MQTT lokal. Sebagai hasilnya, Anda mungkin melihat latensi tambahan ketika Anda menyampaikan pesan MQTT dari perangkat klien pada broker MQTT lokal ke AWS IoT Core. Untuk informasi lebih lanjut tentang konfigurasi MQTT pada perangkat inti, lihat Konfigurasikan pengaturan batas waktu dan cache MQTT.

source dan target harus berbeda.

target

Target broker pesan. Pilih dari salah satu pilihan berikut:

  • LocalMqtt – Broker MQTT lokal tempat perangkat klien berkomunikasi.

  • Pubsub – Broker pesan publikasi/berlangganan Greengrass lokal.

  • IotCore – Broker pesan MQTT AWS IoT Core.

    catatan

    Jembatan MQTT menggunakan QoS 1 untuk mempublikasikan dan berlangganan AWS IoT Core, bahkan ketika perangkat klien menggunakan QoS 0 untuk mempublikasikan dan berlangganan broker MQTT lokal. Sebagai hasilnya, Anda mungkin melihat latensi tambahan ketika Anda menyampaikan pesan MQTT dari perangkat klien pada broker MQTT lokal ke AWS IoT Core. Untuk informasi lebih lanjut tentang konfigurasi MQTT pada perangkat inti, lihat Konfigurasikan pengaturan batas waktu dan cache MQTT.

source dan target harus berbeda.

contoh Contoh: Pembaruan gabungan konfigurasi

Pemutakhiran konfigurasi contoh berikut menetapkan untuk menyampaikan pesan dari perangkat klien keAWS IoT Corepadaclients/MyClientDevice1/hello/worlddanclients/MyClientDevice2/hello/worldtopik.

{ "mqttTopicMapping": { "ClientDevice1HelloWorld": { "topic": "clients/MyClientDevice1/hello/world", "source": "LocalMqtt", "target": "IotCore" }, "ClientDevice2HelloWorld": { "topic": "clients/MyClientDevice2/hello/world", "source": "LocalMqtt", "target": "IotCore" } } }

File log lokal

Komponen ini menggunakan file log yang sama sepertiInti Greengrasskomponen.

Linux
/greengrass/v2/logs/greengrass.log
Windows
C:\greengrass\v2\logs\greengrass.log

Untuk melihat log komponen ini

  • Jalankan perintah berikut pada perangkat inti untuk melihat file log komponen ini secara real time. Ganti/greengrass/v2atauC:\greengrass\v2dengan jalur keAWS IoT Greengrassfolder akar.

    Linux
    sudo tail -f /greengrass/v2/logs/greengrass.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait

Changelog

Tabel berikut menjelaskan perubahan dalam setiap versi komponen.

Versi

Perubahan

2.2.2

Perbaikan bug dan peningkatan
  • Penyesuaian log.

2.2.1

Versi yang diperbarui untuk rilis inti Greengrass versi 2.7.0.

2.2.0

Fitur baru
  • Menambahkan dukungan untuk wildcard topik MQTT (#dan+) ketika Anda menentukan publikasi lokal/berlangganan sebagai broker pesan sumber.

    Fitur ini memerlukan v2.6.0 atau yang lebih baruKomponen inti Greengrass.

  • MenambahkantargetTopicPrefixpilihan, yang dapat Anda tentukan untuk mengkonfigurasi jembatan MQTT untuk menambahkan awalan ke topik target saat menyampaikan pesan.

2.1.1

Perbaikan bug dan peningkatan
  • Memperbaiki masalah dengan bagaimana komponen ini menangani pembaruan pengaturan ulang konfigurasi.

  • Mengurangi frekuensi klien MQTT terputus saat sertifikat berputar.

2.1.0

Fitur baru
  • MenambahkanbrokerUriparameter, yang memungkinkan Anda untuk menggunakan port broker MQTT non-default.

2.0.1

Versi yang diperbarui untuk rilis inti Greengrass versi 2.4.0.

2.0.0

Versi awal.