Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Il componente broker EMQX MQTT (aws.greengrass.clientdevices.mqtt.EMQX
) gestisce i messaggi MQTT tra i dispositivi client e un dispositivo core Greengrass. Questo componente fornisce una versione modificata del broker EMQX MQTT 5.0.
Questo broker implementa il protocollo MQTT 5.0. Include il supporto per gli intervalli di scadenza delle sessioni e dei messaggi, le proprietà degli utenti, le sottoscrizioni condivise, gli alias degli argomenti e altro ancora. MQTT 5 è retrocompatibile con MQTT 3.1.1, quindi se si utilizza il broker Moquette MQTT 3.1.1, è possibile sostituirlo con il broker EMQX MQTT 5 e i dispositivi client possono continuare a connettersi e funzionare come al solito.
Nota
I dispositivi client sono dispositivi IoT locali che si connettono a un dispositivo core Greengrass per inviare messaggi MQTT e dati da elaborare. Per ulteriori informazioni, consulta Interagisci con dispositivi IoT locali.
Argomenti
Versioni
Questo componente ha le seguenti versioni:
-
2.0.x
-
1.2.x
-
1.1.x
-
1.0.x
Tipo
Questo componente è un componente generico () aws.greengrass.generic
. Il nucleo Greengrass esegue gli script del ciclo di vita del componente.
Per ulteriori informazioni, consulta Tipi di componenti.
Sistema operativo
Questo componente può essere installato su dispositivi principali che eseguono i seguenti sistemi operativi:
Linux
Windows
Requisiti
Questo componente presenta i seguenti requisiti:
-
Il dispositivo principale deve essere in grado di accettare connessioni sulla porta in cui opera il broker MQTT. Per impostazione predefinita, questo componente esegue il broker MQTT sulla porta 8883. È possibile specificare una porta diversa quando si configura questo componente.
Se si specifica una porta diversa e si utilizza il componente bridge MQTT per inoltrare messaggi MQTT ad altri broker, è necessario utilizzare MQTT bridge v2.1.0 o versione successiva. Configuralo per utilizzare la porta su cui opera il broker MQTT.
Se si specifica una porta diversa e si utilizza il componente IP detector per gestire gli endpoint del broker MQTT, è necessario utilizzare IP detector v2.1.0 o versione successiva. Configuralo per segnalare la porta su cui opera il broker MQTT.
-
Sui dispositivi principali Linux, Docker è installato e configurato sul dispositivo principale:
-
Docker Engine
1.9.1 o versione successiva installato sul dispositivo principale Greengrass. La versione 20.10 è l'ultima versione verificata per funzionare con il software Core. AWS IoT Greengrass È necessario installare Docker direttamente sul dispositivo principale prima di distribuire componenti che eseguono contenitori Docker. -
Il daemon Docker è stato avviato e funzionante sul dispositivo principale prima di distribuire questo componente.
-
L'utente di sistema che esegue questo componente deve disporre delle autorizzazioni di root o di amministratore. In alternativa, è possibile eseguire questo componente come utente di sistema nel
docker
gruppo e configurare l'requiresPrivileges
opzione di questo componente perfalse
eseguire il broker MQTT EQMX senza privilegi.
-
-
Il componente broker EMQX MQTT è supportato per l'esecuzione in un VPC.
-
Il componente broker EMQX MQTT non è supportato sulla piattaforma.
armv7
Dipendenze
Quando si distribuisce un componente, distribuisce AWS IoT Greengrass anche versioni compatibili delle relative dipendenze. Ciò significa che è necessario soddisfare i requisiti per il componente e tutte le sue dipendenze per distribuire correttamente il componente. Questa sezione elenca le dipendenze per le versioni rilasciate di questo componente e i vincoli di versione semantica che definiscono le versioni dei componenti per ogni dipendenza. È inoltre possibile visualizzare le dipendenze per ogni versione del componente nella console.AWS IoT Greengrass
La tabella seguente elenca le dipendenze per la versione 2.0.2 di questo componente.
Dipendenza | Versioni compatibili | Tipo di dipendenza |
---|---|---|
Autenticazione del dispositivo client | >=2.2.0 <2.6.0 | Flessibili |
Configurazione
Questo componente fornisce i seguenti parametri di configurazione che è possibile personalizzare durante la distribuzione del componente.
Importante
Se si utilizza la versione 2 del componente del broker MQTT 5 (EMQX), è necessario aggiornare il file di configurazione. I file di configurazione della versione 1 non funzionano con la versione 2.
- emqxConfig
-
(Facoltativo) La configurazione del broker EMQX MQTT
da utilizzare. È possibile impostare le opzioni di configurazione EMQX in questo componente. Quando si utilizza il broker EMQX, Greengrass utilizza una configurazione predefinita. Questa configurazione viene utilizzata a meno che non venga modificata utilizzando questo campo.
La modifica delle seguenti impostazioni di configurazione causa il riavvio del componente del broker EMQX. Le altre modifiche alla configurazione si applicano senza riavviare il componente.
-
emqxConfig/cluster
-
emqxConfig/node
-
emqxConfig/rpc
Nota
aws.greengrass.clientdevices.mqtt.EMQX
consente di configurare opzioni sensibili alla sicurezza. Questi includono impostazioni TLS, autenticazione e provider di autorizzazione. Abbiamo consigliato la configurazione predefinita che utilizza l'autenticazione TLS reciproca e il provider di autenticazione del dispositivo client Greengrass.Esempio: configurazione predefinita
L'esempio seguente mostra i valori predefiniti impostati per il broker MQTT 5 (EMQX). È possibile sovrascrivere queste impostazioni utilizzando l'impostazione di configurazione.
emqxConfig
{ "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
-
(Facoltativo) Imposta il provider di autorizzazione per il broker. Può essere uno dei seguenti valori:
-
enabled
— (Impostazione predefinita) Utilizza il provider di autenticazione e autorizzazione Greengrass. -
bypass_on_failure
— Utilizzare il provider di autenticazione Greengrass, quindi utilizzare tutti i provider di autenticazione rimanenti nella catena di provider EMQX se Greengrass nega l'autenticazione o l'autorizzazione. -
bypass
— Il provider Greengrass è disabilitato. L'autenticazione e l'autorizzazione sono gestite dalla catena di fornitori EMQX.
-
requiresPrivilege
-
(Facoltativo) Sui dispositivi principali Linux, è possibile specificare di eseguire il broker EMQX MQTT senza privilegi di root o amministratore. Se si imposta questa opzione su
false
, l'utente di sistema che esegue questo componente deve essere un membro del gruppo.docker
Impostazione predefinita:
true
startupTimeoutSeconds
-
(Facoltativo) Il tempo massimo in secondi per l'avvio del broker EMQX MQTT. Lo stato del componente cambia
BROKEN
se supera questo timeout.Impostazione predefinita:
90
ipcTimeoutSeconds
-
(Facoltativo) Il tempo massimo, in secondi, impiegato dal componente per attendere che il nucleo Greengrass risponda alle richieste di comunicazione tra processi (IPC). Aumentate questo numero se questo componente segnala errori di timeout quando verifica se un dispositivo client è autorizzato.
Impostazione predefinita:
5
crtLogLevel
-
(Facoltativo) Il livello di registro per la libreria AWS Common Runtime (CRT).
Il valore predefinito è il livello di log del broker EMQX MQTT (in).
log.level
emqx
restartIdentifier
-
(Facoltativo) Configurare questa opzione per riavviare il broker EMQX MQTT. Quando questo valore di configurazione cambia, questo componente riavvia il broker MQTT. È possibile utilizzare questa opzione per forzare la disconnessione dei dispositivi client.
dockerOptions
-
(Facoltativo) Configura questa opzione solo sui sistemi operativi Linux per aggiungere parametri alla riga di comando Docker. Ad esempio, per mappare porte aggiuntive, usa il parametro
-p
Docker:"-p 1883:1883"
Esempio: aggiornamento di un file di configurazione v1.x alla v2.x
L'esempio seguente mostra le modifiche necessarie per aggiornare un file di configurazione v1.x alla versione 2.x.
Il file di configurazione della versione 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"
}
}
Il file di configurazione equivalente per la 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"
}
Non esiste un equivalente alla voce di listener.ssl.external.rate_limit
configurazione. L'opzione use_greengrass_managed_certificates
di configurazione è stata rimossa.
Esempio: imposta una nuova porta per il broker
L'esempio seguente modifica la porta su cui opera il broker MQTT dalla porta predefinita 8883 alla porta 1234. Se utilizzi Linux, includi il dockerOptions
campo.
{
"emqxConfig": {
"listeners": {
"ssl": {
"default": {
"bind": 1234
}
}
}
},
"dockerOptions": "-p 1234:1234"
}
Esempio: modifica il livello di log del broker MQTT
L'esempio seguente modifica il livello di log del broker MQTT in. debug
È possibile scegliere tra i seguenti livelli di registro:
-
debug
-
info
-
notice
-
warning
-
error
-
critical
-
alert
-
emergency
Il livello di registro predefinito èwarning
.
{
"emqxConfig": {
"log": {
"console": {
"level": "debug"
}
}
}
}
Esempio: abilitare il pannello di controllo EMQX
L'esempio seguente abilita la dashboard EMQX in modo da poter monitorare e gestire il broker. Se utilizzi Linux, includi il dockerOptions
campo.
{
"emqxConfig": {
"dashboard": {
"listeners": {
"http": {
"bind": 18083
}
}
}
},
"dockerOptions": "-p 18083:18083"
}
File di registro locale
Questo componente utilizza il seguente file di registro.
/logs/aws.greengrass.clientdevices.mqtt.EMQX.log
/greengrass/v2
Per visualizzare i log di questo componente
-
Esegui il seguente comando sul dispositivo principale per visualizzare il file di registro di questo componente in tempo reale. Sostituisci
o/greengrass/v2
C:\greengrass\v2
con il percorso della cartella AWS IoT Greengrass principale.sudo tail -f
/logs/aws.greengrass.clientdevices.mqtt.EMQX.log/greengrass/v2
Licenze
Nei sistemi operativi Windows, questo software include codice distribuito in base alle Condizioni di licenza software Microsoft - Microsoft Visual Studio Community 2022
Questo componente è rilasciato in base al contratto di licenza del software Greengrass Core
Changelog
La tabella seguente descrive le modifiche apportate a ciascuna versione del componente.
Versione |
Modifiche |
---|---|
2.0.2 |
|
2.0.1 |
Versione aggiornata per la versione 2.5.0 di autenticazione dei dispositivi client. |
2.0.0 |
Questa versione del broker MQTT 5 (EMQX) prevede parametri di configurazione diversi rispetto alla versione 1.x. Se si utilizza una configurazione non predefinita per la versione 1.x, è necessario aggiornare la configurazione del componente per la 2.x. Per ulteriori informazioni, consulta Configurazione.
|