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 modifikasi dari broker EMQX MQTT 5.0. 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, lihat. Pilih 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 menjalankan broker Moquette MQTT 3.1.1, Anda dapat menggantinya dengan broker EMQX MQTT 5, dan perangkat klien dapat terus terhubung dan beroperasi seperti biasa.
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:
Jenis
Komponen ini adalah komponen generik (aws.greengrass.generic
). Inti Greengrass menjalankan 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 menggunakan komponen jembatan MQTT untuk 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 menggunakan komponen detektor IP untuk 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:
-
Docker Engine 1.9.1 atau yang lebih baru diinstal pada perangkat inti Greengrass. Versi 20.10 adalah versi terbaru yang diverifikasi untuk bekerja dengan perangkat lunak AWS IoT Greengrass Core. 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 dalam docker
grup dan mengonfigurasi requiresPrivileges
opsi komponen ini false
untuk menjalankan broker EQMX MQTT tanpa hak istimewa.
-
Komponen broker EMQX MQTT didukung untuk berjalan di VPC.
-
Komponen broker EMQX MQTT tidak didukung di platform. armv7
Dependensi
Saat Anda menerapkan komponen, gunakan AWS IoT Greengrass juga 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.1
-
Tabel berikut mencantumkan dependensi untuk versi 2.0.1 komponen ini.
- 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 - 2.0.1
-
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) Konfigurasi broker EMQX MQTT 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 menggunakan pengaturan emqxConfig
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 inifalse
, pengguna sistem yang menjalankan komponen ini harus menjadi anggota docker
grup.
Default: true
startupTimeoutSeconds
-
(Opsional) Maksimum waktu dalam hitungan detik untuk memulai broker EMQX MQTT. Status komponen berubah menjadi BROKEN
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 untuk pustaka AWS Common Runtime (CRT).
Default ke level log broker EMQX MQTT (in). log.level
emqx
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 parameter -p
Docker:
"-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 dengan entri listener.ssl.external.rate_limit
konfigurasi. Opsi use_greengrass_managed_certificates
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, sertakan dockerOptions
bidangnya.
{
"emqxConfig": {
"listeners": {
"ssl": {
"default": {
"bind": 1234
}
}
}
},
"dockerOptions": "-p 1234:1234"
}
contoh Contoh: Sesuaikan level log broker MQTT
Contoh berikut mengubah level log broker MQTT menjadi. debug
Anda dapat memilih dari level log berikut:
-
debug
-
info
-
notice
-
warning
-
error
-
critical
-
alert
-
emergency
Level log default adalahwarning
.
{
"emqxConfig": {
"log": {
"console": {
"level": "debug"
}
}
}
}
contoh Contoh: Aktifkan dasbor EMQX
Contoh berikut memungkinkan dasbor EMQX sehingga Anda dapat memantau dan mengelola broker Anda. Jika Anda menggunakan Linux, sertakan dockerOptions
bidangnya.
{
"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) Konfigurasi broker EMQX MQTT 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 menggunakan komponen jembatan MQTT untuk 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 menggunakan komponen detektor IP untuk 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 menentukan 50KB,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
Level 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 inifalse
, pengguna sistem yang menjalankan komponen ini harus menjadi anggota docker
grup.
Default: true
startupTimeoutSeconds
-
(Opsional) Maksimum waktu dalam hitungan detik untuk memulai broker EMQX MQTT. Status komponen berubah menjadi BROKEN
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 untuk pustaka AWS Common Runtime (CRT).
Default ke level log broker EMQX MQTT (in). log.level
emqx
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 parameter -p
Docker:
"-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, lihat Konfigurasi dalam Dokumentasi EMQX 4.0. Nilai yang Anda tentukan ditambahkan ke file konfigurasi.
Contoh berikut memperbarui etc/emqx.conf
file.
"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 disebut. etc/plugins/aws_greengrass_emqx_auth.conf
Ada dua opsi yang didukung, auth_mode
danuse_greengrass_managed_certificates
. Untuk menggunakan penyedia autentikasi lain, setel auth_mode
opsi ke 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.
Jika yatrue
, opsi ini menunjukkan bahwa Greengrass mengelola sertifikat TLS broker. use_greengrass_managed_certificates
Jikafalse
, ini menunjukkan bahwa Anda memberikan sertifikat melalui sumber lain.
Contoh berikut memperbarui default dalam file konfigurasi. etc/plugins/aws_greengrass_emqx_auth.conf
"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 menentukan etc/emqx.conf
file di bagian ini. Anda harus menggunakan mergeConfigurationFile
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"
}
Berkas 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 menyertakan kode yang didistribusikan di bawah Persyaratan 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.1
|
Versi diperbarui untuk perangkat klien autentikasi versi 2.5.0 rilis.
|
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 untuk perangkat klien autentikasi versi 2.4.0 rilis.
|
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.
|