Weiterleiten von MQTT-Nachrichten zwischen Client-Geräten und AWS IoT Core - AWS IoT Greengrass

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.

Weiterleiten von MQTT-Nachrichten zwischen Client-Geräten und AWS IoT Core

Sie können MQTT-Nachrichten und andere Daten zwischen Client-Geräten und weiterleitenAWS IoT Core. Client-Geräte stellen eine Verbindung mit der MQTT-Brokerkomponente her, die auf dem Core-Gerät ausgeführt wird. Standardmäßig leiten -Core-Geräte keine MQTT-Nachrichten oder -Daten zwischen Client-Geräten und weiterAWS IoT Core. Client-Geräte können standardmäßig nur über MQTT miteinander kommunizieren.

Um MQTT-Nachrichten zwischen Client-Geräten und weiterzuleitenAWS IoT Core, konfigurieren Sie die MQTT-Bridge-Komponente so, dass sie Folgendes tut:

  • Weiterleiten von Nachrichten von Client-Geräten an AWS IoT Core.

  • Weiterleiten von Nachrichten von AWS IoT Core an Client-Geräte.

Anmerkung

Die MQTT-Brücke verwendet QoS 1 zum Veröffentlichen und Abonnieren von AWS IoT Core, auch wenn ein Client-Gerät QoS 0 zum Veröffentlichen und Abonnieren des lokalen MQTT-Brokers verwendet. Infolgedessen können Sie eine zusätzliche Latenz beobachten, wenn Sie MQTT-Nachrichten von Client-Geräten auf dem lokalen MQTT-Broker an weiterleitenAWS IoT Core. Weitere Informationen zur MQTT-Konfiguration auf -Core-Geräten finden Sie unter Konfigurieren Sie MQTT Timeouts und Cache-Einstellungen.

Konfigurieren und Bereitstellen der MQTT-Bridge-Komponente

Die MQTT-Bridge-Komponente verwendet eine Liste von Themenzuordnungen, die jeweils eine Nachrichtenquelle und ein Nachrichtenziel angeben. Um Nachrichten zwischen Client-Geräten und weiterzuleitenAWS IoT Core, stellen Sie die MQTT-Bridge-Komponente bereit und geben Sie jedes Quell- und Zielthema in der Komponentenkonfiguration an.

Um die MQTT-Bridge-Komponente auf einem Core-Gerät oder einer Gruppe von Core-Geräten bereitzustellen, erstellen Sie eine Bereitstellung, die die aws.greengrass.clientdevices.mqtt.Bridge Komponente enthält. Geben Sie die Themenzuordnungen mqttTopicMappingin der Konfiguration der MQTT-Bridge-Komponente in der Bereitstellung an.

Im folgenden Beispiel wird eine Bereitstellung definiert, die die MQTT-Bridge-Komponente so konfiguriert, dass Nachrichten zu Themen weitergeleitet werden, die dem clients/+/hello/world Themenfilter von Client-Geräten an entsprechenAWS IoT Core. Das merge Konfigurationsupdate erfordert ein serialisiertes JSON-Objekt. Weitere Informationen finden Sie unter Komponentenkonfigurationen aktualisieren.

Console
{ "mqttTopicMapping": { "HelloWorldIotCore": { "topic": "clients/+/hello/world", "source": "LocalMqtt", "target": "IotCore" } } }
AWS CLI
{ "components": { "aws.greengrass.clientdevices.mqtt.Bridge": { "version": "2.0.0", "configurationUpdate": { "merge": "{\"mqttTopicMapping\":{\"HelloWorldIotCore\":{\"topic"\:\"clients/+/hello/world\",\"source\":\"LocalMqtt\",\"target\":\"IotCore\"}}}" } } ... } }

Weiterleiten von MQTT-Nachrichten

Um MQTT-Nachrichten zwischen Client-Geräten und weiterzuleitenAWS IoT Core, konfigurieren und stellen Sie die MQTT-Bridge-Komponente bereit und geben Sie die Themen an, die weitergeleitet werden sollen.

Beispiel: Weiterleiten von Nachrichten zu einem Thema von Client-Geräten an AWS IoT Core

Die folgende Konfiguration der MQTT-Bridge-Komponente legt die Weiterleitung von Nachrichten zu Themen fest, die dem clients/+/hello/world/event Themenfilter von Client-Geräten an entsprechenAWS IoT Core.

{ "mqttTopicMapping": { "HelloWorldEvent": { "topic": "clients/+/hello/world/event", "source": "LocalMqtt", "target": "IotCore" } } }
Beispiel: Weiterleiten von Nachrichten zu einem Thema von AWS IoT Core an Client-Geräte

Die folgende Konfiguration der MQTT-Bridge-Komponente legt die Weiterleitung von Nachrichten zu Themen fest, die dem clients/+/hello/world/event/response Themenfilter von AWS IoT Core an Client-Geräte entsprechen.

{ "mqttTopicMapping": { "HelloWorldEventConfirmation": { "topic": "clients/+/hello/world/event/response", "source": "IotCore", "target": "LocalMqtt" } } }