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 bridge MQTT (aws.greengrass.clientdevices.mqtt.Bridge
) inoltra i messaggi MQTT tra dispositivi client, Greengrass publish/subscribe locale e. AWS IoT CoreÈ possibile utilizzare questo componente per agire sui messaggi MQTT provenienti dai dispositivi client in componenti personalizzati e sincronizzare i dispositivi client con. Cloud AWS
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.
È possibile utilizzare questo componente per inoltrare messaggi tra i seguenti broker di messaggi:
-
MQTT locale: il broker MQTT locale gestisce i messaggi tra i dispositivi client e un dispositivo principale.
-
Pubblicazione/sottoscrizione locale: il broker di messaggi Greengrass locale gestisce i messaggi tra i componenti di un dispositivo principale. Per ulteriori informazioni su come interagire con questi messaggi nei componenti Greengrass, vedere. Pubblicare/sottoscrivere messaggi locali
-
AWS IoT Core — Il broker AWS IoT Core MQTT gestisce i messaggi tra dispositivi IoT e Cloud AWS destinazioni. Per ulteriori informazioni su come interagire con questi messaggi nei componenti Greengrass, vedere. AWS IoT Core Pubblicare/sottoscrivere messaggi MQTT
Nota
Il bridge MQTT utilizza QoS 1 per pubblicare e AWS IoT Core sottoscrivere, anche quando un dispositivo client utilizza QoS 0 per pubblicare e sottoscrivere il broker MQTT locale. Di conseguenza, è possibile osservare una latenza aggiuntiva quando si inoltrano messaggi MQTT dai dispositivi client sul broker MQTT locale a. AWS IoT Core Per ulteriori informazioni sulla configurazione MQTT sui dispositivi principali, vedere. Configurare i timeout MQTT e le impostazioni della cache
Argomenti
Versioni
Questo componente ha le seguenti versioni:
-
2.3.x
-
2.2.x
-
2.1.x
-
2,0x
Tipo
Questo componente è un componente del plugin ()aws.greengrass.plugin
. Il nucleo Greengrass esegue questo componente nella stessa Java Virtual Machine (JVM) del nucleo. Il nucleo si riavvia quando si modifica la versione di questo componente sul dispositivo principale.
Questo componente utilizza lo stesso file di registro del nucleo Greengrass. Per ulteriori informazioni, consulta Monitora AWS IoT Greengrass i registri.
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:
-
Se si configura il componente broker MQTT del dispositivo principale per utilizzare una porta diversa dalla porta predefinita 8883, è necessario utilizzare MQTT bridge v2.1.0 o versione successiva. Configuralo per connetterti alla porta in cui opera il broker.
-
Il componente bridge MQTT è supportato per l'esecuzione in un VPC.
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.3.2 di questo componente.
Dipendenza | Versioni compatibili | Tipo di dipendenza |
---|---|---|
Autenticazione del dispositivo client | >=2.2.0 <2.6.0 | Rigidi |
Configurazione
Questo componente fornisce i seguenti parametri di configurazione che è possibile personalizzare durante la distribuzione del componente.
mqttTopicMapping
-
Le mappature degli argomenti che desideri collegare. Questo componente sottoscrive i messaggi sull'argomento di origine e pubblica i messaggi che riceve nell'argomento di destinazione. Ogni mappatura degli argomenti definisce l'argomento, il tipo di origine e il tipo di destinazione.
Questo oggetto contiene le seguenti informazioni:
topicMappingNameKey
-
Il nome di questa mappatura degli argomenti.
topicMappingNameKey
Sostituiscilo con un nome che ti aiuti a identificare questa mappatura degli argomenti.Questo oggetto contiene le seguenti informazioni:
topic
-
L'argomento o il filtro degli argomenti da collegare tra il broker di origine e quello di destinazione.
È possibile utilizzare i caratteri jolly degli argomenti
+
e#
MQTT per inoltrare messaggi su tutti gli argomenti che corrispondono a un filtro per argomento. Per ulteriori informazioni, consultate gli argomenti relativi a MQTT nella Developer Guide.AWS IoT Core targetTopicPrefix
-
Il prefisso da aggiungere all'argomento di destinazione quando questo componente inoltra il messaggio.
source
-
Il broker di messaggi di origine. Seleziona una delle opzioni seguenti:
-
LocalMqtt
— Il broker MQTT locale con cui comunicano i dispositivi client. -
Pubsub
— Il broker di messaggi di pubblicazione/sottoscrizione locale Greengrass. -
IotCore
— Il AWS IoT Core broker di messaggi MQTT.Nota
Il bridge MQTT utilizza QoS 1 per pubblicare e AWS IoT Core sottoscrivere, anche quando un dispositivo client utilizza QoS 0 per pubblicare e sottoscrivere il broker MQTT locale. Di conseguenza, è possibile osservare una latenza aggiuntiva quando si inoltrano messaggi MQTT dai dispositivi client sul broker MQTT locale a. AWS IoT Core Per ulteriori informazioni sulla configurazione MQTT sui dispositivi principali, vedere. Configurare i timeout MQTT e le impostazioni della cache
source
etarget
deve essere diverso. -
target
-
Il broker di messaggi di destinazione. Seleziona una delle opzioni seguenti:
-
LocalMqtt
— Il broker MQTT locale con cui comunicano i dispositivi client. -
Pubsub
— Il broker di messaggi di pubblicazione/sottoscrizione locale Greengrass. -
IotCore
— Il AWS IoT Core broker di messaggi MQTT.Nota
Il bridge MQTT utilizza QoS 1 per pubblicare e AWS IoT Core sottoscrivere, anche quando un dispositivo client utilizza QoS 0 per pubblicare e sottoscrivere il broker MQTT locale. Di conseguenza, è possibile osservare una latenza aggiuntiva quando si inoltrano messaggi MQTT dai dispositivi client sul broker MQTT locale a. AWS IoT Core Per ulteriori informazioni sulla configurazione MQTT sui dispositivi principali, vedere. Configurare i timeout MQTT e le impostazioni della cache
source
etarget
deve essere diverso. -
- mqtt5 RouteOptions
-
(Facoltativo) Fornisce opzioni per configurare le mappature degli argomenti per collegare i messaggi dall'argomento di origine a quello di destinazione.
Questo oggetto contiene le seguenti informazioni:
mqtt5RouteOptionsNameKey
-
Il nome delle opzioni di percorso per la mappatura di un argomento. Sostituisci
mqtt5RouteOptionsNameKey
con la corrispondenzatopicMappingNameKey
definita nelmqttTopicMapping
campo.Questo oggetto contiene le seguenti informazioni:
- NoLocal
-
(Facoltativo) Se abilitato, il bridge non inoltra messaggi su un argomento pubblicato dal bridge stesso. Utilizzatelo per prevenire i loop, come segue:
{ "mqtt5RouteOptions": { "toIoTCore": { "noLocal": true } }, "mqttTopicMapping": { "toIoTCore": { "topic": "device", "source": "LocalMqtt", "target": "IotCore" }, "toLocal": { "topic": "device", "source": "IotCore", "target": "LocalMqtt" } } }
noLocal
è supportato solo per i percorsi in cuisource
èLocalMqtt
.Impostazione predefinita: false
- retainAsPublished
-
(Facoltativo) Se abilitato, i messaggi inoltrati dal bridge hanno lo stesso
retain
contrassegno dei messaggi pubblicati sul broker per quella rotta.retainAsPublished
è supportato solo per i percorsi in cui èsource
.LocalMqtt
Impostazione predefinita: false
- mqtt
-
(Facoltativo) Impostazioni del protocollo MQTT per la comunicazione con il broker locale.
- version
-
(Facoltativo) La versione del protocollo MQTT utilizzata dal bridge per comunicare con il broker locale. Deve essere la stessa della versione MQTT selezionata nella configurazione del nucleo.
Scegli tra le seguenti opzioni:
-
mqtt3
-
mqtt5
È necessario implementare un broker MQTT quando il
target
camposource
o dell'mqttTopicMapping
oggetto è impostato su.LocalMqtt
Se si sceglie l'mqtt5
opzione, è necessario utilizzare il. Broker MQTT 5 (EMQX)Impostazione predefinita:
mqtt3
-
- ackTimeoutSeconds
-
(Facoltativo) Intervallo di tempo in cui attendere i pacchetti PUBACK, SUBACK o UNSUBACK prima di fallire l'operazione.
Impostazione predefinita: 60
- connAckTimeoutSig.ra
-
(Facoltativo) Intervallo di tempo di attesa di un pacchetto CONNACK prima di interrompere la connessione.
Impostazione predefinita: 20000 (20 secondi)
- pingTimeoutMs
-
(Facoltativo) La quantità di tempo in millisecondi che il bridge attende per ricevere un messaggio PINGACK dal broker locale. Se l'attesa supera il timeout, il bridge si chiude e riapre la connessione MQTT. Questo valore deve essere inferiore a.
keepAliveTimeoutSeconds
Impostazione predefinita: 30000 (30 secondi)
- keepAliveTimeoutSecondi
-
(Facoltativo) La quantità di tempo in secondi tra ogni messaggio PING inviato dal bridge per mantenere attiva la connessione MQTT. Questo valore deve essere maggiore di.
pingTimeoutMs
Impostazione predefinita: 60
- maxReconnectDelaySig.ra
-
(Facoltativo) Il tempo massimo in secondi per la riconnessione di MQTT.
Impostazione predefinita: 30000 (30 secondi)
- minReconnectDelaySig.ra
-
(Facoltativo) Il tempo minimo in secondi per la riconnessione di MQTT.
- Ricevi il massimo
-
(Facoltativo) Il numero massimo di pacchetti QoS1 non riconosciuti che il bridge può inviare.
Impostazione predefinita: 100
- maximumPacketSize
-
Il numero massimo di byte che il client accetterà per un pacchetto MQTT.
Impostazione predefinita: null (nessun limite)
- sessionExpiryInterval
-
(Facoltativo) La quantità di tempo in secondi che è possibile richiedere per la durata di una sessione tra il bridge e il broker locale.
Impostazione predefinita: 4294967295 (la sessione non scade mai)
brokerUri
-
(Facoltativo) L'URI del broker MQTT locale. È necessario specificare questo parametro se si configura il broker MQTT per utilizzare una porta diversa dalla porta predefinita 8883. Utilizzate il seguente formato e sostituitelo
port
con la porta in cui opera il broker MQTT:.ssl://localhost:
port
Impostazione predefinita:
ssl://localhost:8883
- startupTimeoutSeconds
-
(Facoltativo) Il tempo massimo in secondi per l'avvio del componente. Lo stato del componente cambia
BROKEN
se supera questo timeout.Impostazione predefinita:
120
Esempio: fusione e aggiornamento della configurazione
Il seguente esempio di aggiornamento della configurazione specifica quanto segue:
-
Inoltra i messaggi dai dispositivi client agli AWS IoT Core argomenti che corrispondono al filtro degli
clients/+/hello/world
argomenti. -
Inoltra i messaggi dai dispositivi client alla pubblicazione o sottoscrizione locale su argomenti che corrispondono al filtro degli argomenti e aggiungi il
events/input/
prefisso all'clients/+/detections
argomento di destinazione. L'argomento di destinazione risultante corrisponde al filtro degli argomenti.events/input/clients/+/detections
-
Inoltra i messaggi dai dispositivi client AWS IoT Core agli argomenti che corrispondono al filtro degli argomenti e aggiungi il
$aws/rules/StatusUpdateRule/
prefisso all'clients/+/status
argomento di destinazione. Questo esempio inoltra questi messaggi direttamente a una AWS IoT regola denominata perStatusUpdateRule
ridurre i costi utilizzando Basic Ingest.
{
"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"
}
}
}
Esempio: configurazione di MQTT 5
La seguente configurazione di esempio aggiorna quanto segue:
-
Consente al bridge di utilizzare il protocollo MQTT 5 con il broker locale.
-
Configura MQTT keep come impostazione pubblicata per la mappatura degli
ClientDeviceHelloWorld
argomenti.
{ "mqttTopicMapping": { "ClientDeviceHelloWorld": { "topic": "clients/+/hello/world", "source": "LocalMqtt", "target": "IotCore" } }, "mqtt5RouteOptions": { "ClientDeviceHelloWorld": { "retainAsPublished": true } }, "mqtt": { "version": "mqtt5" } }
File di registro locale
Questo componente utilizza lo stesso file di registro del componente Greengrass nucleus.
/logs/greengrass.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/greengrass.log/greengrass/v2
Changelog
La tabella seguente descrive le modifiche in ogni versione del componente.
Versione |
Modifiche |
---|---|
2.3.2 |
Versione aggiornata per la versione 2.5.0 di autenticazione dei dispositivi client. |
2.3.1 |
|
2.3.0 |
|
2.2.6 |
|
2.2.5 |
Versione aggiornata per la versione 2.4.0 di autenticazione dei dispositivi client. |
2.2.4 |
Versione aggiornata per la versione 2.3.0 di autenticazione del dispositivo client Greengrass. |
2.2.3 |
Questa versione contiene correzioni di bug e miglioramenti. |
2.2.2 |
|
2.2.1 |
|
2.2.0 |
|
2.1.1 |
|
2.1.0 |
|
2.0.1 |
Questa versione include correzioni di bug e miglioramenti. |
2.0.0 |
Versione iniziale. |