Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pialang MQTT 5 (EMQX)
Komponen broker EMQX MQTT (aws.greengrass.clientdevices.mqtt.EMQX
) menangani pesan MQTT antara perangkat klien dan perangkat inti Greengrass. Komponen ini menyediakan versi modifikasiEMQX MQTT 5.0 pialang. Menyebarkan broker MQTT ini untuk menggunakan fitur MQTT 5 dalam komunikasi antara perangkat klien dan perangkat inti. Untuk informasi lebih lanjut tentang cara memilih broker MQTT, lihatPilih broker MQTT.
Broker ini mengimplementasikan protokol MQTT 5.0. Ini mencakup dukungan untuk interval kedaluwarsa sesi dan pesan, properti pengguna, langganan bersama, alias topik, dan banyak lagi. MQTT 5 kompatibel dengan MQTT 3.1.1, jadi jika Anda menjalankanMoquette MQTT 3.1.1 pialang, Anda dapat menggantinya dengan broker EMQX MQTT 5, dan perangkat klien dapat terus terhubung dan beroperasi seperti biasa.
Fitur MQTT 5 terbatas pada komunikasi antara broker MQTT 5 dan perangkat klien. TheKomponen jembatan MQTTmenggunakan MQTT 3.1.1 untuk berkomunikasi dengan broker ini. Karena itu, ketika jembatan menyampaikan pesan MQTT antaraAWS IoT Coredan broker MQTT 5 ini, pesan menggunakan fitur MQTT 3.1.1 alih-alih MQTT 5.
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.
Versi
Komponen ini memiliki versi berikut:
Tipe
Inikomponen adalah komponen generik (aws.greengrass.generic
). TheInti greengrassmenjalankan skrip siklus hidup komponen.
Untuk informasi selengkapnya, lihat Jenis komponen.
Sistem operasi
Komponen ini dapat diinstal pada perangkat inti yang menjalankan sistem operasi berikut:
Persyaratan
Komponen ini memiliki persyaratan sebagai berikut:
-
Perangkat inti harus dapat menerima koneksi pada port tempat broker MQTT beroperasi. Komponen ini menjalankan broker MQTT pada port 8883 secara default. Anda dapat menentukan port yang berbeda saat Anda mengonfigurasi komponen ini.
Jika Anda menentukan port yang berbeda, dan Anda menggunakanKomponen jembatan MQTTuntuk menyampaikan pesan MQTT ke broker lain, Anda harus menggunakan MQTT bridge v2.1.0 atau yang lebih baru. Konfigurasikan untuk menggunakan port tempat broker MQTT beroperasi.
Jika Anda menentukan port yang berbeda, dan Anda menggunakanKomponen detektor IPuntuk mengelola titik akhir broker MQTT, Anda harus menggunakan detektor IP v2.1.0 atau yang lebih baru. Konfigurasikan untuk melaporkan port tempat broker MQTT beroperasi.
-
Pada perangkat inti Linux, Docker diinstal dan dikonfigurasi pada perangkat inti:
-
Mesin Docker1.9.1 atau yang lebih baru diinstal pada perangkat inti Greengrass. Versi 20.10 adalah versi terbaru yang diverifikasi untuk bekerja denganAWS IoT GreengrassPerangkat lunak inti. Anda harus menginstal Docker langsung pada perangkat inti sebelum Anda menyebarkan komponen yang menjalankan kontainer Docker.
-
Daemon Docker dimulai dan berjalan pada perangkat inti sebelum Anda men-deploy komponen ini.
-
Pengguna sistem yang menjalankan komponen ini harus memiliki izin root atau administrator. Atau, Anda dapat menjalankan komponen ini sebagai pengguna sistem didocker
kelompokkan dan konfigurasikan komponen inirequiresPrivileges
pilihan untukfalse
untuk menjalankan broker EQMX MQTT tanpa hak istimewa.
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.0.0
-
Tabel berikut mencantumkan dependensi untuk versi 2.0.0 komponen ini.
- 1.2.2 – 1.2.3
-
Tabel berikut mencantumkan dependensi untuk versi 1.2.2 hingga 1.2.3 komponen ini.
- 1.2.0 and 1.2.1
-
Tabel berikut mencantumkan dependensi untuk versi 1.2.0 dan 1.2.1 dari komponen ini.
- 1.0.0 and 1.1.0
-
Tabel berikut mencantumkan dependensi untuk versi 1.0.0 dan 1.1.0 dari komponen ini.
Untuk informasi selengkapnya tentang dependensi komponen, lihat referensi resep komponen.
Konfigurasi
- 2.0.0
-
Komponen ini menyediakan parameter konfigurasi berikut yang dapat Anda sesuaikan ketika Anda men-deploy komponen.
Jika Anda menggunakan versi 2 dari komponen broker MQTT 5 (EMQX), Anda harus memperbarui file konfigurasi Anda. File konfigurasi versi 1 tidak berfungsi dengan versi 2.
- EMQXconfig
-
(Opsional)Pialang EMQX MQTTkonfigurasi untuk digunakan. Anda dapat mengatur opsi konfigurasi EMQX dalam komponen ini.
Saat Anda menggunakan broker EMQX, Greengrass menggunakan konfigurasi default. Konfigurasi ini digunakan kecuali Anda memodifikasinya menggunakan bidang ini.
Memodifikasi pengaturan konfigurasi berikut menyebabkan komponen broker EMQX dimulai ulang. Perubahan konfigurasi lainnya berlaku tanpa memulai ulang komponen.
-
emqxConfig/cluster
-
emqxConfig/node
-
emqxConfig/rpc
aws.greengrass.clientdevices.mqtt.EMQX
memungkinkan Anda mengonfigurasi opsi yang sensitif terhadap keamanan. Ini termasuk pengaturan TLS, otentikasi, dan penyedia otorisasi. Kami merekomendasikan konfigurasi default yang menggunakan otentikasi TLS timbal balik dan penyedia autentikasi perangkat klien Greengrass.
contoh Contoh: Konfigurasi default
Contoh berikut menunjukkan default yang ditetapkan untuk broker MQTT 5 (EMQX). Anda dapat mengganti pengaturan ini menggunakanemqxConfig
pengaturan konfigurasi.
{
"authorization": {
"no_match": "deny",
"sources": []
},
"node": {
"cookie": "<placeholder>
"
},
"listeners" {
"ssl": {
"default": {
"ssl_options": {
"keyfile": "{work:path}\\data\\key.pem",
"certfile": "{work:path}\\data\\cert.pem",
"cacertfile": null,
"verify": "verify_peer",
"versions": ["tlsv1.3", "tlsv1.2"],
"fail_if_no_peer_cert" = true
}
}
},
"tcp": {
"default": {
"enabled": false
}
},
"ws": {
"default": {
"enabled": false
}
},
"wss": {
"default": {
"enabled": false
}
}
},
"plugins": {
"states": [{"name_vsn": "gg-1.0.0", "enable": true}],
"install_dir": "plugins"
}
}
- AuthMode
-
(Opsional) Menetapkan penyedia otorisasi untuk broker. Dapat menjadi salah satu dari nilai berikut:
-
enabled
— (Default) Gunakan penyedia otentikasi dan otorisasi Greengrass.
-
bypass_on_failure
— Gunakan penyedia otentikasi Greengrass, lalu gunakan penyedia otentikasi yang tersisa di rantai penyedia EMQX jika Greengrass menolak otentikasi atau otorisasi.
-
bypass
- Penyedia Greengrass dinonaktifkan. Otentikasi dan otorisasi ditangani oleh rantai penyedia EMQX.
requiresPrivilege
-
(Opsional) Pada perangkat inti Linux, Anda dapat menentukan untuk menjalankan broker EMQX MQTT tanpa hak root atau administrator. Jika Anda menyetel opsi ini kefalse
, pengguna sistem yang menjalankan komponen ini harus menjadi anggotadocker
kelompok.
Default: true
startupTimeoutSeconds
-
(Opsional) Maksimum waktu dalam hitungan detik untuk memulai broker EMQX MQTT. Status komponen berubah menjadiBROKEN
jika melebihi batas waktu ini.
Default: 90
ipcTimeoutSeconds
-
(Opsional) Maksimum waktu dalam hitungan detik bagi komponen untuk menunggu inti Greengrass merespons permintaan komunikasi antarproses (IPC). Tingkatkan angka ini jika komponen ini melaporkan kesalahan batas waktu saat memeriksa apakah perangkat klien diotorisasi.
Default: 5
crtLogLevel
-
(Opsional) Tingkat log untukAWSPustaka Common Runtime (CRT).
Default ke tingkat log broker EMQX MQTT (log.level
diemqx
).
restartIdentifier
-
(Opsional) Konfigurasikan opsi ini untuk memulai ulang broker EMQX MQTT. Ketika nilai konfigurasi ini berubah, komponen ini memulai ulang broker MQTT. Anda dapat menggunakan opsi ini untuk memaksa perangkat klien memutuskan sambungan.
dockerOptions
-
(Opsional) Konfigurasikan opsi ini hanya pada sistem operasi Linux untuk menambahkan parameter ke baris perintah Docker. Misalnya, untuk memetakan port tambahan, gunakan-p
Parameter buruh pelabuhan:
"-p 1883:1883"
contoh Contoh: Memperbarui file konfigurasi v1.x ke v2.x
Contoh berikut menunjukkan perubahan yang diperlukan untuk memperbarui file konfigurasi v1.x ke versi 2.x.
File konfigurasi versi 1.x:
{
"emqx": {
"listener.ssl.external": "443",
"listener.ssl.external.max_connections": "1024000",
"listener.ssl.external.max_conn_rate": "500",
"listener.ssl.external.rate_limit": "50KB,5s",
"listener.ssl.external.handshake_timeout": "15s",
"log.level": "warning"
},
"mergeConfigurationFiles": {
"etc/plugins/aws_greengrass_emqx_auth.conf": "auth_mode=enabled\n use_greengrass_managed_certificates=true\n"
}
}
File konfigurasi yang setara untuk v2:
{
"emqxConfig": {
"listeners": {
"ssl": {
"default": {
"bind": "8883",
"max_connections": "1024000",
"max_conn_rate": "500",
"handshake_timeout": "15s",
}
}
},
"log": {
"console": {
"enable": true,
"level": "warning"
}
}
},
"authMode": "enabled",
}
Tidak ada yang setara denganlistener.ssl.external.rate_limit
entri konfigurasi. Theuse_greengrass_managed_certificates
opsi konfigurasi telah dihapus.
contoh Contoh: Tetapkan port baru untuk broker
Contoh berikut mengubah port tempat broker MQTT beroperasi dari default 8883 ke port 1234. Jika Anda menggunakan Linux, sertakandockerOptions
lapangan.
{
"emqxConfig": {
"listeners": {
"ssl": {
"default": {
"bind": 1234
}
}
}
},
"dockerOptions": "-p 1234:1234"
}
contoh Contoh: Sesuaikan level log broker MQTT
Contoh berikut mengubah level log broker MQTT menjadidebug
. Anda dapat memilih dari level log berikut:
-
debug
-
info
-
notice
-
warning
-
error
-
critical
-
alert
-
emergency
Tingkat log default adalahwarning
.
{
"emqxConfig": {
"log": {
"console": {
"level": "debug"
}
}
}
}
contoh Contoh: Aktifkan dasbor EMQX
Contoh berikut memungkinkan dashboard EMQX sehingga Anda dapat memantau dan mengelola broker Anda. Jika Anda menggunakan Linux, sertakandockerOptions
lapangan.
{
"emqxConfig": {
"dashboard": {
"listeners": {
"http": {
"bind": 18083
}
}
}
},
"dockerOptions": "-p 18083:18083"
}
- 1.0.0 - 1.2.2
-
Komponen ini menyediakan parameter konfigurasi berikut yang dapat Anda sesuaikan ketika Anda men-deploy komponen.
emqx
-
(Opsional)Pialang EMQX MQTTkonfigurasi untuk digunakan. Anda dapat mengonfigurasi subset opsi konfigurasi EMQX dalam komponen ini.
Objek ini berisi informasi berikut:
listener.ssl.external
-
(Opsional) Port tempat broker MQTT beroperasi.
Jika Anda menentukan port yang berbeda, dan Anda menggunakanKomponen jembatan MQTTuntuk menyampaikan pesan MQTT ke broker lain, Anda harus menggunakan MQTT bridge v2.1.0 atau yang lebih baru. Konfigurasikan untuk menggunakan port tempat broker MQTT beroperasi.
Jika Anda menentukan port yang berbeda, dan Anda menggunakanKomponen detektor IPuntuk mengelola titik akhir broker MQTT, Anda harus menggunakan detektor IP v2.1.0 atau yang lebih baru. Konfigurasikan untuk melaporkan port tempat broker MQTT beroperasi.
Default: 8883
listener.ssl.external.max_connections
-
(Opsional) Jumlah maksimum koneksi bersamaan yang didukung oleh broker MQTT.
Default: 1024000
listener.ssl.external.max_conn_rate
-
(Opsional) Jumlah maksimum koneksi baru per detik yang dapat diterima broker MQTT.
Default: 500
listener.ssl.external.rate_limit
-
(Opsional) Batas bandwidth untuk semua koneksi ke broker MQTT. Tentukan bandwidth dan durasi untuk bandwidth yang dipisahkan oleh koma (,
) dalam format berikut:bandwidth,duration
. Misalnya, Anda dapat menentukan50KB,5s
untuk membatasi broker MQTT hingga 50 kilobyte (KB) data setiap 5 detik.
listener.ssl.external.handshake_timeout
-
(Opsional) Jumlah waktu yang menunggu broker MQTT untuk menyelesaikan otentikasi koneksi baru.
Default: 15s
mqtt.max_packet_size
-
(Opsional) Ukuran maksimum pesan MQTT.
Default:268435455
(256 MB dikurangi 1)
log.level
-
(Opsional) Tingkat log untuk broker MQTT. Pilih dari salah satu pilihan berikut:
-
debug
-
info
-
notice
-
warning
-
error
-
critical
-
alert
-
emergency
Tingkat log default adalahwarning
.
requiresPrivilege
-
(Opsional) Pada perangkat inti Linux, Anda dapat menentukan untuk menjalankan broker EMQX MQTT tanpa hak root atau administrator. Jika Anda menyetel opsi ini kefalse
, pengguna sistem yang menjalankan komponen ini harus menjadi anggotadocker
kelompok.
Default: true
startupTimeoutSeconds
-
(Opsional) Maksimum waktu dalam hitungan detik untuk memulai broker EMQX MQTT. Status komponen berubah menjadiBROKEN
jika melebihi batas waktu ini.
Default: 90
ipcTimeoutSeconds
-
(Opsional) Maksimum waktu dalam hitungan detik bagi komponen untuk menunggu inti Greengrass merespons permintaan komunikasi antarproses (IPC). Tingkatkan angka ini jika komponen ini melaporkan kesalahan batas waktu saat memeriksa apakah perangkat klien diotorisasi.
Default: 5
crtLogLevel
-
(Opsional) Tingkat log untukAWSPustaka Common Runtime (CRT).
Default ke tingkat log broker EMQX MQTT (log.level
diemqx
).
restartIdentifier
-
(Opsional) Konfigurasikan opsi ini untuk memulai ulang broker EMQX MQTT. Ketika nilai konfigurasi ini berubah, komponen ini memulai ulang broker MQTT. Anda dapat menggunakan opsi ini untuk memaksa perangkat klien memutuskan sambungan.
dockerOptions
-
(Opsional) Konfigurasikan opsi ini hanya pada sistem operasi Linux untuk menambahkan parameter ke baris perintah Docker. Misalnya, untuk memetakan port tambahan, gunakan-p
Parameter buruh pelabuhan:
"-p 1883:1883"
mergeConfigurationFiles
-
(Opsional) Konfigurasikan opsi ini untuk menambah atau mengganti default dalam file konfigurasi EMQX yang ditentukan. Untuk informasi tentang file konfigurasi dan formatnya, lihatKonfigurasidiDokumentasi EMQX 4.0. Nilai yang Anda tentukan ditambahkan ke file konfigurasi.
Contoh berikut memperbaruietc/emqx.conf
berkas.
"mergeConfigurationFiles": {
"etc/emqx.conf": "broker.sys_interval=30s\nbroker.sys_heartbeat=10s"
},
Selain file konfigurasi yang didukung oleh EMQX, Greengrass mendukung file yang mengkonfigurasi plugin autentikasi Greengrass untuk EMQX yang disebutetc/plugins/aws_greengrass_emqx_auth.conf
. Ada dua opsi yang didukung,auth_mode
danuse_greengrass_managed_certificates
. Untuk menggunakan penyedia autentikasi lain, aturauth_mode
pilihan untuk salah satu dari berikut ini:
-
enabled
— (Default) Gunakan penyedia otentikasi dan otorisasi Greengrass.
-
bypass_on_failure
— Gunakan penyedia otentikasi Greengrass, lalu gunakan penyedia otentikasi yang tersisa di rantai penyedia EMQX jika Greengrass menolak otentikasi atau otorisasi.
-
bypass
- Penyedia Greengrass dinonaktifkan. Otentikasi dan otorisasi kemudian ditangani oleh rantai penyedia EMQX.
Jikause_greengrass_managed_certificates
adalahtrue
, opsi ini menunjukkan bahwa Greengrass mengelola sertifikat TLS broker. Jikafalse
, ini menunjukkan bahwa Anda memberikan sertifikat melalui sumber lain.
Contoh berikut memperbarui default dietc/plugins/aws_greengrass_emqx_auth.conf
file konfigurasi.
"mergeConfigurationFiles": {
"etc/plugins/aws_greengrass_emqx_auth.conf": "auth_mode=enabled\n use_greengrass_managed_certificates=true\n"
},
aws.greengrass.clientdevices.mqtt.EMQX
memungkinkan Anda mengonfigurasi opsi yang sensitif terhadap keamanan. Ini termasuk pengaturan TLS, otentikasi, dan penyedia otorisasi. Konfigurasi yang disarankan adalah konfigurasi default yang menggunakan otentikasi TLS timbal balik dan penyedia Auth Perangkat Klien Greengrass.
replaceConfigurationFiles
-
(Opsional) Konfigurasikan opsi ini untuk mengganti file konfigurasi EMQX yang ditentukan. Nilai yang Anda tentukan menggantikan seluruh file konfigurasi yang ada. Anda tidak dapat menentukanetc/emqx.conf
berkas di bagian ini. Anda harus menggunakanmergeConfigurationFile
untuk memodifikasietc/emqx.conf
.
contoh Contoh: Pembaruan gabungan konfigurasi
Contoh konfigurasi berikut menentukan untuk mengoperasikan broker MQTT pada port 443.
{
"emqx": {
"listener.ssl.external": "443",
"listener.ssl.external.max_connections": "1024000",
"listener.ssl.external.max_conn_rate": "500",
"listener.ssl.external.rate_limit": "50KB,5s",
"listener.ssl.external.handshake_timeout": "15s",
"log.level": "warning"
},
"requiresPrivilege": "true",
"startupTimeoutSeconds": "90",
"ipcTimeoutSeconds": "5"
}
File log lokal
Komponen ini menggunakan file log berikut.
- Linux
-
/greengrass/v2
/logs/aws.greengrass.clientdevices.mqtt.EMQX.log
- Windows
-
C:\greengrass\v2
\logs\aws.greengrass.clientdevices.mqtt.EMQX.log
Untuk melihat log komponen ini
Lisensi
Pada sistem operasi Windows, perangkat lunak ini mencakup kode yang didistribusikan di bawahKetentuan Lisensi Perangkat Lunak Microsoft - Komunitas Microsoft Visual Studio 2022. Dengan mengunduh perangkat lunak ini, Anda menyetujui ketentuan lisensi kode tersebut.
Komponen ini dirilis menurut Perjanjian Lisensi Perangkat Lunak Greengrass Core.
Changelog
Tabel berikut menjelaskan perubahan dalam setiap versi komponen.
- v2.x
-
Versi
|
Perubahan
|
2.0.0 |
Versi broker MQTT 5 (EMQX) ini mengharapkan parameter konfigurasi yang berbeda dari versi 1.x. Jika Anda menggunakan konfigurasi non-default untuk versi 1.x, Anda harus memperbarui konfigurasi komponen untuk 2.x. Untuk informasi selengkapnya, lihat Konfigurasi.
|
- v1.x
-
Versi
|
Perubahan
|
1.2.3
|
- Perbaikan bug dan peningkatan
-
|
1.2.2
|
Versi diperbarui untukautentikasi perangkat klienrilis versi 2.4.0.
|
1.2.1
|
- Perbaikan bug dan peningkatan
-
|
1.2.0
|
Menambahkan dukungan untuk rantai sertifikat.
|
1.1.0
|
- Fitur baru
-
- Perbaikan bug dan peningkatan
-
|
1.0.1
|
Memperbaiki masalah selama jabat tangan TLS yang mengakibatkan beberapa klien MQTT gagal terhubung.
|
1.0.0
|
Versi awal.
|