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à.
Broker MQTT 5 (EMQX)
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. Implementate questo broker MQTT per utilizzare le funzionalità MQTT 5 nella comunicazione tra i dispositivi client e un dispositivo principale. Per ulteriori informazioni su come scegliere un broker MQTT, vedere. Scegli un broker MQTT
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.
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.
Versioni
Questo componente ha le seguenti versioni:
Type
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:
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 per false
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 Nella pagina dei dettagli del componente, cerca l'elenco delle dipendenze.
- 2.0.1
-
La tabella seguente elenca le dipendenze per la versione 2.0.1 di questo componente.
- 2.0.0
-
La tabella seguente elenca le dipendenze per la versione 2.0.0 di questo componente.
- 1.2.2 – 1.2.3
-
La tabella seguente elenca le dipendenze per le versioni da 1.2.2 a 1.2.3 di questo componente.
- 1.2.0 and 1.2.1
-
La tabella seguente elenca le dipendenze per le versioni 1.2.0 e 1.2.1 di questo componente.
- 1.0.0 and 1.1.0
-
La tabella seguente elenca le dipendenze per le versioni 1.0.0 e 1.1.0 di questo componente.
Per ulteriori informazioni sulle dipendenze dei componenti, vedere il riferimento alla ricetta dei componenti.
Configurazione
- 2.0.0 - 2.0.1
-
Questo componente fornisce i seguenti parametri di configurazione che è possibile personalizzare durante la distribuzione del componente.
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
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 sufalse
, 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"
}
- 1.0.0 - 1.2.2
-
Questo componente fornisce i seguenti parametri di configurazione che è possibile personalizzare quando si distribuisce il componente.
emqx
-
(Facoltativo) La configurazione del broker EMQX MQTT da utilizzare. È possibile configurare un sottoinsieme di opzioni di configurazione EMQX in questo componente.
Questo oggetto contiene le seguenti informazioni:
listener.ssl.external
-
(Facoltativo) La porta in cui opera il broker MQTT.
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.
Impostazione predefinita: 8883
listener.ssl.external.max_connections
-
(Facoltativo) Il numero massimo di connessioni simultanee supportate dal broker MQTT.
Impostazione predefinita: 1024000
listener.ssl.external.max_conn_rate
-
(Facoltativo) Il numero massimo di nuove connessioni al secondo che il broker MQTT può ricevere.
Impostazione predefinita: 500
listener.ssl.external.rate_limit
-
(Facoltativo) Il limite di larghezza di banda per tutte le connessioni al broker MQTT. Specificate la larghezza di banda e la durata di tale larghezza di banda separate da una virgola (,
) nel seguente formato:. bandwidth,duration
Ad esempio, è possibile specificare di 50KB,5s
limitare il broker MQTT a 50 kilobyte (KB) di dati ogni 5 secondi.
listener.ssl.external.handshake_timeout
-
(Facoltativo) La quantità di tempo che il broker MQTT attende per completare l'autenticazione di una nuova connessione.
Impostazione predefinita: 15s
mqtt.max_packet_size
-
(Facoltativo) La dimensione massima di un messaggio MQTT.
Impostazione predefinita: 268435455
(256 MB meno 1)
log.level
-
(Facoltativo) Il livello di log per il broker MQTT. Seleziona una delle opzioni seguenti:
-
debug
-
info
-
notice
-
warning
-
error
-
critical
-
alert
-
emergency
Il livello di registro predefinito èwarning
.
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 sufalse
, 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"
mergeConfigurationFiles
-
(Facoltativo) Configurate questa opzione per aggiungere o sostituire i valori predefiniti nei file di configurazione EMQX specificati. Per informazioni sui file di configurazione e sui relativi formati, vedere Configurazione nella documentazione di EMQX 4.0. I valori specificati vengono aggiunti al file di configurazione.
L'esempio seguente aggiorna il etc/emqx.conf
file.
"mergeConfigurationFiles": {
"etc/emqx.conf": "broker.sys_interval=30s\nbroker.sys_heartbeat=10s"
},
Oltre ai file di configurazione supportati da EMQX, Greengrass supporta un file che configura il plugin di autenticazione Greengrass per EMQX chiamato. etc/plugins/aws_greengrass_emqx_auth.conf
Sono supportate due opzioni e. auth_mode
use_greengrass_managed_certificates
Per utilizzare un altro provider di autenticazione, imposta l'auth_mode
opzione su una delle seguenti:
-
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 vengono quindi gestite dalla catena di fornitori EMQX.
In caso use_greengrass_managed_certificates
affermativotrue
, questa opzione indica che Greengrass gestisce i certificati TLS del broker. Sefalse
, indica che i certificati vengono forniti tramite un'altra fonte.
L'esempio seguente aggiorna le impostazioni predefinite nel etc/plugins/aws_greengrass_emqx_auth.conf
file di configurazione.
"mergeConfigurationFiles": {
"etc/plugins/aws_greengrass_emqx_auth.conf": "auth_mode=enabled\n use_greengrass_managed_certificates=true\n"
},
aws.greengrass.clientdevices.mqtt.EMQX
consente di configurare opzioni sensibili alla sicurezza. Questi includono impostazioni TLS, autenticazione e provider di autorizzazione. La configurazione consigliata è la configurazione predefinita che utilizza l'autenticazione TLS reciproca e il provider Greengrass Client Device Auth.
replaceConfigurationFiles
-
(Facoltativo) Configurate questa opzione per sostituire i file di configurazione EMQX specificati. I valori specificati sostituiscono l'intero file di configurazione esistente. Non è possibile specificare il etc/emqx.conf
file in questa sezione. È necessario utilizzare mergeConfigurationFile
per modificareetc/emqx.conf
.
Esempio: fusione e aggiornamento della configurazione
La configurazione di esempio seguente specifica di utilizzare il broker MQTT sulla porta 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 di registro locale
Questo componente utilizza il seguente file di registro.
- Linux
-
/greengrass/v2
/logs/aws.greengrass.clientdevices.mqtt.EMQX.log
- Windows
-
C:\greengrass\v2
\logs\aws.greengrass.clientdevices.mqtt.EMQX.log
Per visualizzare i log di questo componente
Licenze
Nei sistemi operativi Windows, questo software include codice distribuito in base alle Condizioni di licenza software Microsoft - Microsoft Visual Studio Community 2022. Scaricando questo software, l'utente accetta le condizioni di licenza del codice.
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.
- v2.x
-
Versione
|
Modifiche
|
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.
- Nuove funzionalità
-
- Aggiornamenti
-
|
- v1.x
-
Versione
|
Modifiche
|
1.2.3
|
- Correzioni di bug e miglioramenti
-
|
1.2.2
|
Versione aggiornata per la versione 2.4.0 di autenticazione del dispositivo client.
|
1.2.1
|
- Correzioni di bug e miglioramenti
-
|
1.2.0
|
Aggiunge il supporto per le catene di certificati.
|
1.1.0
|
- Nuove funzionalità
-
- Correzioni di bug e miglioramenti
-
|
1.0.1
|
Risolve un problema durante l'handshake TLS che impediva la connessione di alcuni client MQTT.
|
1.0.0
|
Versione iniziale.
|