Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Die MQTT-Bridge-Komponente (aws.greengrass.clientdevices.mqtt.Bridge
) leitet MQTT-Nachrichten zwischen Client-Geräten, lokalem Greengrass Publish/Subscribe und weiter. AWS IoT Core Sie können diese Komponente verwenden, um auf MQTT-Nachrichten von Client-Geräten in benutzerdefinierten Komponenten zu reagieren und Client-Geräte mit dem zu synchronisieren. AWS Cloud
Anmerkung
Client-Geräte sind lokale IoT-Geräte, die eine Verbindung zu einem Greengrass-Core-Gerät herstellen, um MQTT-Nachrichten und Daten zur Verarbeitung zu senden. Weitere Informationen finden Sie unter Interagieren Sie mit lokalen IoT-Geräten.
Sie können diese Komponente verwenden, um Nachrichten zwischen den folgenden Message Brokern weiterzuleiten:
-
Lokaler MQTT — Der lokale MQTT-Broker verarbeitet Nachrichten zwischen Client-Geräten und einem Core-Gerät.
-
Lokales Veröffentlichen/Abonnieren — Der lokale Greengrass-Nachrichtenbroker verarbeitet Nachrichten zwischen Komponenten auf einem Kerngerät. Weitere Informationen zur Interaktion mit diesen Nachrichten in Greengrass-Komponenten finden Sie unterLokale Nachrichten veröffentlichen/abonnieren.
-
AWS IoT Core — Der AWS IoT Core MQTT-Broker verarbeitet Nachrichten zwischen IoT-Geräten und AWS Cloud Zielen. Weitere Informationen zur Interaktion mit diesen Nachrichten in Greengrass-Komponenten finden Sie unterNachrichten veröffentlichen/abonnieren AWS IoT Core MQTT.
Anmerkung
Die MQTT-Bridge verwendet QoS 1 zum Veröffentlichen und Abonnieren AWS IoT Core, auch wenn ein Client-Gerät QoS 0 verwendet, um den lokalen MQTT-Broker zu veröffentlichen und zu abonnieren. Infolgedessen können Sie zusätzliche Latenz beobachten, wenn Sie MQTT-Nachrichten von Client-Geräten auf dem lokalen MQTT-Broker an weiterleiten. AWS IoT Core Weitere Informationen zur MQTT-Konfiguration auf Kerngeräten finden Sie unter. Konfigurieren Sie MQTT Timeouts und Cache-Einstellungen
Themen
Versionen
Diese Komponente hat die folgenden Versionen:
-
2.3.x
-
2.2.x
-
2.1.x
-
2.0.x
Typ
Diese Komponente ist eine Plugin-Komponente (aws.greengrass.plugin
). Der Greengrass-Kern führt diese Komponente in derselben Java Virtual Machine (JVM) wie der Nucleus aus. Der Nucleus wird neu gestartet, wenn Sie die Version dieser Komponente auf dem Core-Gerät ändern.
Diese Komponente verwendet dieselbe Protokolldatei wie der Greengrass-Kern. Weitere Informationen finden Sie unter Überwachen von AWS IoT Greengrass Protokollen.
Weitere Informationen finden Sie unter Komponententypen.
Betriebssystem
Diese Komponente kann auf Kerngeräten installiert werden, auf denen die folgenden Betriebssysteme ausgeführt werden:
Linux
Windows
Voraussetzungen
Für diese Komponente gelten die folgenden Anforderungen:
-
Wenn Sie die MQTT-Broker-Komponente des Kerngeräts so konfigurieren, dass sie einen anderen Port als den Standardport 8883 verwendet, müssen Sie MQTT Bridge v2.1.0 oder höher verwenden. Konfigurieren Sie es so, dass es eine Verbindung über den Port herstellt, an dem der Broker arbeitet.
-
Die MQTT-Bridge-Komponente wird für die Ausführung in einer VPC unterstützt.
Abhängigkeiten
Wenn Sie eine Komponente bereitstellen, stellt sie AWS IoT Greengrass auch kompatible Versionen ihrer Abhängigkeiten bereit. Das bedeutet, dass Sie die Anforderungen für die Komponente und all ihre Abhängigkeiten erfüllen müssen, um die Komponente erfolgreich bereitstellen zu können. In diesem Abschnitt werden die Abhängigkeiten für die veröffentlichten Versionen dieser Komponente sowie die semantischen Versionseinschränkungen aufgeführt, die die Komponentenversionen für jede Abhängigkeit definieren. Sie können auch die Abhängigkeiten für jede Version der Komponente in der AWS IoT Greengrass Konsole
In der folgenden Tabelle sind die Abhängigkeiten für Version 2.3.2 dieser Komponente aufgeführt.
-Abhängigkeit | Kompatible Versionen | Art der Abhängigkeit |
---|---|---|
Authentifizierung auf dem Client-Gerät | >=2.2.0 <2.6.0 | Hart |
Konfiguration
Diese Komponente stellt die folgenden Konfigurationsparameter bereit, die Sie bei der Bereitstellung der Komponente anpassen können.
mqttTopicMapping
-
Die Themenzuordnungen, die Sie überbrücken möchten. Diese Komponente abonniert Nachrichten zum Quellthema und veröffentlicht die Nachrichten, die sie empfängt, im Zielthema. Jede Themenzuordnung definiert das Thema, den Quelltyp und den Zieltyp.
Dieses Objekt enthält die folgenden Informationen:
topicMappingNameKey
-
Der Name dieser Themenzuordnung. Ersetzen Sie
topicMappingNameKey
durch einen Namen, anhand dessen Sie diese Themenzuordnung leichter identifizieren können.Dieses Objekt enthält die folgenden Informationen:
topic
-
Das Thema oder der Themenfilter, um eine Brücke zwischen dem Quell- und dem Zielbroker zu schlagen.
Sie können die Platzhalter
+
und#
MQTT-Themen-Platzhalter verwenden, um Nachrichten zu allen Themen weiterzuleiten, die einem Themenfilter entsprechen. Weitere Informationen finden Sie unter MQTT-Themen im Entwicklerhandbuch.AWS IoT Core targetTopicPrefix
-
Das Präfix, das dem Zielthema hinzugefügt werden soll, wenn diese Komponente die Nachricht weiterleitet.
source
-
Der Quellnachrichtenbroker. Wählen Sie aus den folgenden Optionen aus:
-
LocalMqtt
— Der lokale MQTT-Broker, über den Client-Geräte kommunizieren. -
Pubsub
— Der lokale Greengrass-Nachrichtenbroker zum Veröffentlichen und Abonnieren. -
IotCore
— Der AWS IoT Core MQTT-Nachrichtenbroker.Anmerkung
Die MQTT-Bridge verwendet QoS 1 zum Veröffentlichen und Abonnieren AWS IoT Core, auch wenn ein Client-Gerät QoS 0 verwendet, um den lokalen MQTT-Broker zu veröffentlichen und zu abonnieren. Infolgedessen können Sie zusätzliche Latenz beobachten, wenn Sie MQTT-Nachrichten von Client-Geräten auf dem lokalen MQTT-Broker an weiterleiten. AWS IoT Core Weitere Informationen zur MQTT-Konfiguration auf Kerngeräten finden Sie unter. Konfigurieren Sie MQTT Timeouts und Cache-Einstellungen
source
undtarget
muss anders sein. -
target
-
Der Ziel-Nachrichtenbroker. Wählen Sie aus den folgenden Optionen aus:
-
LocalMqtt
— Der lokale MQTT-Broker, über den Client-Geräte kommunizieren. -
Pubsub
— Der lokale Greengrass-Nachrichtenbroker zum Veröffentlichen und Abonnieren. -
IotCore
— Der AWS IoT Core MQTT-Nachrichtenbroker.Anmerkung
Die MQTT-Bridge verwendet QoS 1 zum Veröffentlichen und Abonnieren AWS IoT Core, auch wenn ein Client-Gerät QoS 0 verwendet, um den lokalen MQTT-Broker zu veröffentlichen und zu abonnieren. Infolgedessen können Sie zusätzliche Latenz beobachten, wenn Sie MQTT-Nachrichten von Client-Geräten auf dem lokalen MQTT-Broker an weiterleiten. AWS IoT Core Weitere Informationen zur MQTT-Konfiguration auf Kerngeräten finden Sie unter. Konfigurieren Sie MQTT Timeouts und Cache-Einstellungen
source
undtarget
muss anders sein. -
- mqtt5 RouteOptions
-
(Optional) Stellt Optionen für die Konfiguration von Themenzuordnungen bereit, um Nachrichten vom Quellthema zum Zielthema zu überbrücken.
Dieses Objekt enthält die folgenden Informationen:
mqtt5 RouteOptionsNameKey
-
Der Name der Routenoptionen für ein Topic-Mapping. Ersetzen Sie
mqtt5 RouteOptionsNameKey
durch den passendentopicMappingNameSchlüssel
, dermqttTopicMapping
im Feld definiert ist.Dieses Objekt enthält die folgenden Informationen:
- Kein Lokal
-
(Optional) Wenn diese Option aktiviert ist, leitet die Bridge keine Nachrichten zu einem Thema weiter, das die Bridge selbst veröffentlicht hat. Verwenden Sie dies, um Schleifen wie folgt zu verhindern:
{ "mqtt5RouteOptions": { "toIoTCore": { "noLocal": true } }, "mqttTopicMapping": { "toIoTCore": { "topic": "device", "source": "LocalMqtt", "target": "IotCore" }, "toLocal": { "topic": "device", "source": "IotCore", "target": "LocalMqtt" } } }
noLocal
wird nur für Routen unterstützt, auf denen dersource
istLocalMqtt
.Standard: false
- retainAsPublished
-
(Optional) Wenn diese Option aktiviert ist, haben Nachrichten, die von der Bridge weitergeleitet werden, dieselbe
retain
Kennzeichnung wie Nachrichten, die für diese Route auf dem Broker veröffentlicht wurden.retainAsPublished
wird nur für Routen unterstützt, bei denen dies dersource
istLocalMqtt
.Standard: false
- mqtt
-
(Optional) MQTT-Protokolleinstellungen für die Kommunikation mit dem lokalen Broker.
- version
-
(Optional) Die MQTT-Protokollversion, die von der Bridge für die Kommunikation mit dem lokalen Broker verwendet wird. Muss mit der in der Nucleus-Konfiguration ausgewählten MQTT-Version identisch sein.
Wählen Sie eine der folgenden Optionen aus:
-
mqtt3
-
mqtt5
Sie müssen einen MQTT-Broker bereitstellen, wenn das
target
Feldsource
oder desmqttTopicMapping
Objekts auf gesetzt ist.LocalMqtt
Wenn Sie diemqtt5
Option wählen, müssen Sie die MQTT5 Makler (EMQX) verwenden.Standard:
mqtt3
-
- ackTimeoutSeconds
-
(Optional) Zeitintervall für das Warten auf PUBACK-, SUBACK- oder UNSUBACK-Pakete, bevor der Vorgang fehlschlägt.
Standard: 60
- connAckTimeoutFrau
-
(Optional) Zeitintervall, in dem auf ein CONNACK-Paket gewartet werden soll, bevor die Verbindung unterbrochen wird.
Standard: 20000 (20 Sekunden)
- pingTimeoutMs
-
(Optional) Die Zeit in Millisekunden, die die Bridge auf den Empfang einer PINGACK-Nachricht vom lokalen Broker wartet. Wenn die Wartezeit das Timeout überschreitet, wird die Bridge geschlossen und die MQTT-Verbindung erneut geöffnet. Dieser Wert muss kleiner als sein.
keepAliveTimeoutSeconds
Standard: 30000 (30 Sekunden)
- keepAliveTimeoutSekunden
-
(Optional) Die Zeitspanne in Sekunden zwischen den einzelnen PING-Nachrichten, die die Bridge sendet, um die MQTT-Verbindung aufrechtzuerhalten. Dieser Wert muss größer als
pingTimeoutMs
sein.Standard: 60
- maxReconnectDelayFrau
-
(Optional) Die maximale Zeit in Sekunden, für die MQTT die Verbindung wiederherstellt.
Standard: 30000 (30 Sekunden)
- minReconnectDelayFrau
-
(Optional) Die Mindestzeit in Sekunden, die MQTT benötigt, um die Verbindung wiederherzustellen.
- Maximal empfangen
-
(Optional) Die maximale Anzahl unbestätigter QoS1-Pakete, die die Bridge senden kann.
Standard: 100
- maximumPacketSize
-
Die maximale Anzahl von Byte, die der Client für ein MQTT-Paket akzeptiert.
Standard: null (kein Limit)
- sessionExpiryInterval
-
(Optional) Die Dauer in Sekunden, die Sie für die Dauer einer Sitzung zwischen der Bridge und dem lokalen Broker anfordern können.
Standard: 4294967295 (Sitzung läuft nie ab)
brokerUri
-
(Optional) Die URI des lokalen MQTT-Brokers. Sie müssen diesen Parameter angeben, wenn Sie den MQTT-Broker so konfigurieren, dass er einen anderen Port als den Standardport 8883 verwendet. Verwenden Sie das folgende Format und ersetzen Sie
Port durch den Port
, an dem der MQTT-Broker arbeitet:.ssl://localhost:
port
Standard:
ssl://localhost:8883
- startupTimeoutSeconds
-
(Optional) Die maximale Zeit in Sekunden für den Start der Komponente. Der Status der Komponente ändert sich auf,
BROKEN
wenn dieser Timeout überschritten wird.Standard:
120
Beispiel: Aktualisierung der Zusammenführung von Konfigurationen
Das folgende Beispiel für ein Konfigurationsupdate spezifiziert Folgendes:
-
Leitet Nachrichten von Client-Geräten AWS IoT Core an Themen weiter, die dem
clients/+/hello/world
Themenfilter entsprechen. -
Leitet Nachrichten von Client-Geräten zu Themen, die dem Themenfilter entsprechen, an das lokale Publish/Subscribe weiter und fügt dem
clients/+/detections
Zielthema dasevents/input/
Präfix hinzu. Das resultierende Zielthema entspricht demevents/input/clients/+/detections
Themenfilter. -
Leiten Sie Nachrichten von Client-Geräten AWS IoT Core an Themen weiter, die dem
clients/+/status
Themenfilter entsprechen, und fügen Sie dem Zielthema das$aws/rules/StatusUpdateRule/
Präfix hinzu. In diesem Beispiel werden diese Nachrichten direkt an eine AWS IoT Regel mit dem Namen „StatusUpdateRule
Kosten reduzieren“ mithilfe von Basic Ingest weitergeleitet.
{
"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"
}
}
}
Beispiel: Konfiguration von MQTT 5
Die folgende Beispielkonfiguration aktualisiert Folgendes:
-
Ermöglicht der Bridge, das MQTT 5-Protokoll mit dem lokalen Broker zu verwenden.
-
Konfiguriert die Einstellung MQTT keep as published für das
ClientDeviceHelloWorld
Topic-Mapping.
{ "mqttTopicMapping": { "ClientDeviceHelloWorld": { "topic": "clients/+/hello/world", "source": "LocalMqtt", "target": "IotCore" } }, "mqtt5RouteOptions": { "ClientDeviceHelloWorld": { "retainAsPublished": true } }, "mqtt": { "version": "mqtt5" } }
Lokale Protokolldatei
Diese Komponente verwendet dieselbe Protokolldatei wie die Greengrass Nucleus-Komponente.
/logs/greengrass.log
/greengrass/v2
Um die Protokolle dieser Komponente einzusehen
-
Führen Sie den folgenden Befehl auf dem Kerngerät aus, um die Protokolldatei dieser Komponente in Echtzeit anzuzeigen. Ersetzen Sie
oder/greengrass/v2
C:\greengrass\v2
durch den Pfad zum AWS IoT Greengrass Stammordner.sudo tail -f
/logs/greengrass.log/greengrass/v2
Änderungsprotokoll
In der folgenden Tabelle werden die Änderungen in den einzelnen Versionen der Komponente beschrieben.
Version |
Änderungen |
---|---|
2.3.2 |
Die Version wurde für die Version 2.5.0 der Client-Geräteauthentifizierung aktualisiert. |
2.3.1 |
|
2.3.0 |
|
2.2.6 |
|
2.2.5 |
Die Version wurde für die Version 2.4.0 der Client-Geräteauthentifizierung aktualisiert. |
2.2.4 |
Die Version wurde für die Version 2.3.0 der Greengrass-Client-Geräteauthentifizierung aktualisiert. |
2.2.3 |
Diese Version enthält Fehlerkorrekturen und Verbesserungen. |
2.2.2 |
|
2.2.1 |
|
2.2.0 |
|
2.1.1 |
|
2.1.0 |
|
2.0.1 |
Diese Version enthält Fehlerkorrekturen und Verbesserungen. |
2.0.0 |
Erste Version |