View a markdown version of this page

MQTT-Brücke - 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.

MQTT-Brücke

Die MQTT-Bridge-Komponente (aws.greengrass.clientdevices.mqtt.Bridge) leitet MQTT-Nachrichten zwischen Client-Geräten, lokalem Greengrass und weiter. publish/subscribe 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:

  • Lokales MQTT — Der lokale MQTT-Broker verarbeitet Nachrichten zwischen Client-Geräten und einem Kerngerät.

  • Lokal publish/subscribe — Der lokale Greengrass-Nachrichtenbroker verarbeitet Nachrichten zwischen Komponenten auf einem Kerngerät. Weitere Informationen zur Interaktion mit diesen Nachrichten in Greengrass-Komponenten finden Sie unter. Lokale 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 unter. Publish/subscribe AWS IoT Core MQTT-Nachrichten

    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. Daher kann es zu zusätzlicher Latenz kommen, wenn Sie MQTT-Nachrichten von Client-Geräten auf dem lokalen MQTT-Broker an diese weiterleiten. AWS IoT Core Weitere Hinweise zur MQTT-Konfiguration auf Kerngeräten finden Sie unter. Konfigurieren Sie MQTT-Timeouts und Cache-Einstellungen

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-Nukleus führt diese Komponente in derselben Java Virtual Machine (JVM) aus wie der Nucleus. Der Nucleus wird neu gestartet, wenn Sie die Version dieser Komponente auf dem Kerngerät ändern.

Diese Komponente verwendet dieselbe Protokolldatei wie der Greengrass-Nucleus. Weitere Informationen finden Sie unter AWS IoT Greengrass Protokolle überwachen.

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 Ausführung der MQTT-Bridge-Komponente wird in einer VPC unterstützt.

Abhängigkeiten

Wenn Sie eine Komponente bereitstellen, werden AWS IoT Greengrass auch kompatible Versionen ihrer Abhängigkeiten bereitgestellt. Das bedeutet, dass Sie die Anforderungen für die Komponente und alle ihre Abhängigkeiten erfüllen müssen, um die Komponente erfolgreich bereitzustellen. 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 die Abhängigkeiten für jede Version der Komponente auch in der AWS IoT Greengrass Konsole anzeigen. Suchen Sie auf der Seite mit den Komponentendetails nach der Liste der Abhängigkeiten.

2.3.2

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.3.2 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Authentifizierung auf dem Client-Gerät > =2,2,0 <2,6,0 Hart
2.3.0 and 2.3.1

In der folgenden Tabelle sind die Abhängigkeiten für die Versionen 2.3.0 und 2.3.1 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Authentifizierung auf dem Client-Gerät > =2,2,0 <2,5,0 Hart
2.2.5 and 2.2.6

In der folgenden Tabelle sind die Abhängigkeiten für die Versionen 2.2.5 und 2.2.6 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Authentifizierung auf dem Client-Gerät > =2,2,0 <2,5,0 Hart
2.2.3 and 2.2.4

In der folgenden Tabelle sind die Abhängigkeiten für die Versionen 2.2.3 und 2.2.4 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Authentifizierung auf dem Client-Gerät > =2,2,0 <2,4,0 Hart
2.2.0 – 2.2.2

In der folgenden Tabelle sind die Abhängigkeiten für die Versionen 2.2.0 bis 2.2.2 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Authentifizierung auf dem Client-Gerät > =2,2,0 <2,3,0 Hart
2.1.1

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.1.1 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Authentifizierung auf dem Client-Gerät > =2,0,0 <2,2,0 Hart
2.0.0 to 2.1.0

In der folgenden Tabelle sind die Abhängigkeiten für die Versionen 2.0.0 bis 2.1.0 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Authentifizierung auf dem Client-Gerät > =2,0,0 <2,10 Hart

Weitere Informationen zu Komponentenabhängigkeiten finden Sie in der Komponentenrezeptreferenz.

Konfiguration

Diese Komponente stellt die folgenden Konfigurationsparameter bereit, die Sie bei der Bereitstellung der Komponente anpassen können.

2.3.0 – 2.3.2
mqttTopicMapping

Die Themenzuordnungen, die Sie überbrücken möchten. Diese Komponente abonniert Nachrichten zum Quellthema und veröffentlicht die eingegangenen Nachrichten im Zielthema. Jede Themenzuordnung definiert das Thema, den Quelltyp und den Zieltyp.

Dieses Objekt enthält die folgenden Informationen:

topicMappingNameKey

Der Name dieser Themenzuordnung. topicMappingNameKeyErsetzen Sie ihn durch einen Namen, der Ihnen hilft, diese Themenzuordnung zu identifizieren.

Dieses Objekt enthält die folgenden Informationen:

topic

Das Thema oder der Themenfilter, um eine Brücke zwischen den Quell- und Ziel-Brokern zu schlagen.

Sie können die Platzhalter für Themen + und # MQTT-Themen verwenden, um Nachrichten zu allen Themen weiterzuleiten, die einem Themenfilter entsprechen. Weitere Informationen finden Sie unter MQTT-Themen im Entwicklerhandbuch. AWS IoT Core

Anmerkung

Um Platzhalter für MQTT-Themen mit dem Pubsub Quellbroker zu verwenden, müssen Sie Version 2.6.0 oder höher der Greengrass-Nucleus-Komponente verwenden. Grüngras-Kern

targetTopicPrefix

Das Präfix, das dem Zielthema hinzugefügt werden soll, wenn diese Komponente die Nachricht weiterleitet.

source

Der Quell-Message-Broker. Wählen Sie aus den folgenden Optionen aus:

  • LocalMqtt— Der lokale MQTT-Broker, über den Client-Geräte kommunizieren.

  • Pubsub— Der lokale publish/subscribe Greengrass-Nachrichtenbroker.

  • 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. Daher kann es zu zusätzlicher Latenz kommen, wenn Sie MQTT-Nachrichten von Client-Geräten auf dem lokalen MQTT-Broker an diese weiterleiten. AWS IoT Core Weitere Hinweise zur MQTT-Konfiguration auf Kerngeräten finden Sie unter. Konfigurieren Sie MQTT-Timeouts und Cache-Einstellungen

sourceund target muss anders sein.

target

Der Ziel-Message-Broker. Wählen Sie aus den folgenden Optionen aus:

  • LocalMqtt— Der lokale MQTT-Broker, über den Client-Geräte kommunizieren.

  • Pubsub— Der lokale publish/subscribe Greengrass-Nachrichtenbroker.

  • 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. Daher kann es zu zusätzlicher Latenz kommen, wenn Sie MQTT-Nachrichten von Client-Geräten auf dem lokalen MQTT-Broker an diese weiterleiten. AWS IoT Core Weitere Hinweise zur MQTT-Konfiguration auf Kerngeräten finden Sie unterKonfigurieren Sie MQTT-Timeouts und Cache-Einstellungen.

sourceund target muss anders sein.

mqtt5 RouteOptions

(Optional) Stellt Optionen für die Konfiguration von Themenzuordnungen bereit, um Nachrichten vom Quellthema zum Zielthema zu verbinden.

Dieses Objekt enthält die folgenden Informationen:

mqtt5RouteOptionsNameKey

Der Name der Routenoptionen für eine Themenzuordnung. mqtt5RouteOptionsNameKeyErsetzen Sie ihn durch den im mqttTopicMapping Feld topicMappingNameKey definierten Treffer.

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" } } }

noLocalwird nur für Routen unterstützt, source auf LocalMqtt denen

Standard: false

behalten AsPublished

(Optional) Wenn diese Option aktiviert ist, haben Nachrichten, die von der Bridge weitergeleitet werden, dasselbe retain Flag wie Nachrichten, die für diese Route an den Broker veröffentlicht wurden.

retainAsPublishedwird nur für Routen unterstützt, source auf LocalMqtt denen

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 übereinstimmen.

Wählen Sie eine der folgenden Optionen aus:

  • mqtt3

  • mqtt5

Sie müssen einen MQTT-Broker bereitstellen, wenn das target Feld source oder des mqttTopicMapping Objekts auf gesetzt ist. LocalMqtt Wenn Sie die mqtt5 Option wählen, müssen Sie die MQTT 5-Broker (EMAX) verwenden.

Standard: mqtt3

Zurück TimeoutSeconds

(Optional) Zeitintervall, in dem auf PUBACK-, SUBACK- oder UNSUBACK-Pakete gewartet werden muss, bevor der Vorgang fehlschlägt.

Standard: 60

conn AckTimeoutMs

(Optional) Zeitintervall, in dem auf ein CONNACK-Paket gewartet werden muss, bevor die Verbindung geschlossen wird.

Standard: 20000 (20 Sekunden)

Ping TimeoutMs

(Optional) Die Zeitspanne in Millisekunden, die die Bridge auf den Empfang einer PINGACK-Nachricht vom lokalen Broker wartet. Wenn die Wartezeit den Timeout überschreitet, wird die Bridge geschlossen und die MQTT-Verbindung erneut geöffnet. Dieser Wert muss kleiner als sein. keepAliveTimeoutSeconds

Standard: 30000 (30 Sekunden)

behalten AliveTimeoutSeconds

(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

max ReconnectDelayMs

(Optional) Die maximale Zeit in Sekunden, die MQTT benötigt, um die Verbindung wiederherzustellen.

Standard: 30000 (30 Sekunden)

min ReconnectDelayMs

(Optional) Die Mindestdauer in Sekunden, die MQTT benötigt, um die Verbindung wiederherzustellen.

Maximum empfangen

(Optional) Die maximale Anzahl unbestätigter QoS1-Pakete, die die Bridge senden kann.

Standard: 100

maximal PacketSize

Die maximale Anzahl von Bytes, die der Client für ein MQTT-Paket akzeptiert.

Standard: null (kein Limit)

Sitzung ExpiryInterval

(Optional) Die Zeitdauer 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 es durch den Port, an port dem der MQTT-Broker arbeitet:. ssl://localhost:port

Standard: ssl://localhost:8883

Start TimeoutSeconds

(Optional) Die maximale Zeit in Sekunden, die die Komponente zum Starten benötigt. Der Status der Komponente ändert sich, BROKEN wenn dieser Timeout überschritten wird.

Standard: 120

Beispiel Beispiel: Aktualisierung der Konfiguration zum Zusammenführen

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.

  • Leiten Sie Nachrichten von Client-Geräten zu publish/subscribe Themen, die dem clients/+/detections Themenfilter entsprechen, an lokale Benutzer weiter und fügen Sie das events/input/ Präfix zum Zielthema hinzu. Das resultierende Zielthema entspricht dem events/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 das $aws/rules/StatusUpdateRule/ Präfix zum Zielthema hinzu. In diesem Beispiel werden diese Nachrichten direkt an eine AWS IoT Regel mit dem Namen „StatusUpdateRuleKostenreduzierung“ 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 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, dass MQTT die Einstellung „Als veröffentlicht beibehalten“ für die ClientDeviceHelloWorld Themenzuordnung beibehalten wird.

{ "mqttTopicMapping": { "ClientDeviceHelloWorld": { "topic": "clients/+/hello/world", "source": "LocalMqtt", "target": "IotCore" } }, "mqtt5RouteOptions": { "ClientDeviceHelloWorld": { "retainAsPublished": true } }, "mqtt": { "version": "mqtt5" } }
2.2.6
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. topicMappingNameKeyErsetzen Sie ihn durch einen Namen, der Ihnen hilft, diese Themenzuordnung zu identifizieren.

Dieses Objekt enthält die folgenden Informationen:

topic

Das Thema oder der Themenfilter, um eine Brücke zwischen den Quell- und Ziel-Brokern zu schlagen.

Sie können die Platzhalter für Themen + und # MQTT-Themen verwenden, um Nachrichten zu allen Themen weiterzuleiten, die einem Themenfilter entsprechen. Weitere Informationen finden Sie unter MQTT-Themen im Entwicklerhandbuch. AWS IoT Core

Anmerkung

Um Platzhalter für MQTT-Themen mit dem Pubsub Quellbroker zu verwenden, müssen Sie Version 2.6.0 oder höher der Greengrass-Nucleus-Komponente verwenden. Grüngras-Kern

targetTopicPrefix

Das Präfix, das dem Zielthema hinzugefügt werden soll, wenn diese Komponente die Nachricht weiterleitet.

source

Der Quell-Message-Broker. Wählen Sie aus den folgenden Optionen aus:

  • LocalMqtt— Der lokale MQTT-Broker, über den Client-Geräte kommunizieren.

  • Pubsub— Der lokale publish/subscribe Greengrass-Nachrichtenbroker.

  • 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. Daher kann es zu zusätzlicher Latenz kommen, wenn Sie MQTT-Nachrichten von Client-Geräten auf dem lokalen MQTT-Broker an diese weiterleiten. AWS IoT Core Weitere Hinweise zur MQTT-Konfiguration auf Kerngeräten finden Sie unter. Konfigurieren Sie MQTT-Timeouts und Cache-Einstellungen

sourceund target muss anders sein.

target

Der Ziel-Message-Broker. Wählen Sie aus den folgenden Optionen aus:

  • LocalMqtt— Der lokale MQTT-Broker, über den Client-Geräte kommunizieren.

  • Pubsub— Der lokale publish/subscribe Greengrass-Nachrichtenbroker.

  • 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. Daher kann es zu zusätzlicher Latenz kommen, wenn Sie MQTT-Nachrichten von Client-Geräten auf dem lokalen MQTT-Broker an diese weiterleiten. AWS IoT Core Weitere Hinweise zur MQTT-Konfiguration auf Kerngeräten finden Sie unter. Konfigurieren Sie MQTT-Timeouts und Cache-Einstellungen

sourceund target muss anders sein.

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 es durch den Port, an port dem der MQTT-Broker arbeitet:. ssl://localhost:port

Standard: ssl://localhost:8883

Start TimeoutSeconds

(Optional) Die maximale Zeit in Sekunden, die die Komponente zum Starten benötigt. Der Status der Komponente ändert sich, BROKEN wenn dieser Timeout überschritten wird.

Standard: 120

Beispiel Beispiel: Aktualisierung der Konfiguration zum Zusammenführen

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.

  • Leiten Sie Nachrichten von Client-Geräten zu publish/subscribe Themen, die dem clients/+/detections Themenfilter entsprechen, an lokale Geräte weiter und fügen Sie das events/input/ Präfix zum Zielthema hinzu. Das resultierende Zielthema entspricht dem events/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 das $aws/rules/StatusUpdateRule/ Präfix zum Zielthema hinzu. In diesem Beispiel werden diese Nachrichten direkt an eine AWS IoT Regel mit dem Namen „StatusUpdateRuleKostenreduzierung“ 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" } } }
2.2.0 - 2.2.5
mqttTopicMapping

Die Themenzuordnungen, die Sie überbrücken möchten. Diese Komponente abonniert Nachrichten zum Quellthema und veröffentlicht die Nachrichten, die sie erhält, im Zielthema. Jede Themenzuordnung definiert das Thema, den Quelltyp und den Zieltyp.

Dieses Objekt enthält die folgenden Informationen:

topicMappingNameKey

Der Name dieser Themenzuordnung. topicMappingNameKeyErsetzen Sie ihn durch einen Namen, der Ihnen hilft, diese Themenzuordnung zu identifizieren.

Dieses Objekt enthält die folgenden Informationen:

topic

Das Thema oder der Themenfilter, um eine Brücke zwischen den Quell- und Ziel-Brokern zu schlagen.

Sie können die Platzhalter für Themen + und # MQTT-Themen verwenden, um Nachrichten zu allen Themen weiterzuleiten, die einem Themenfilter entsprechen. Weitere Informationen finden Sie unter MQTT-Themen im Entwicklerhandbuch. AWS IoT Core

Anmerkung

Um Platzhalter für MQTT-Themen mit dem Pubsub Quellbroker zu verwenden, müssen Sie Version 2.6.0 oder höher der Greengrass-Nucleus-Komponente verwenden. Grüngras-Kern

targetTopicPrefix

Das Präfix, das dem Zielthema hinzugefügt werden soll, wenn diese Komponente die Nachricht weiterleitet.

source

Der Quell-Message-Broker. Wählen Sie aus den folgenden Optionen aus:

  • LocalMqtt— Der lokale MQTT-Broker, über den Client-Geräte kommunizieren.

  • Pubsub— Der lokale publish/subscribe Greengrass-Nachrichtenbroker.

  • 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. Daher kann es zu zusätzlicher Latenz kommen, wenn Sie MQTT-Nachrichten von Client-Geräten auf dem lokalen MQTT-Broker an diese weiterleiten. AWS IoT Core Weitere Hinweise zur MQTT-Konfiguration auf Kerngeräten finden Sie unter. Konfigurieren Sie MQTT-Timeouts und Cache-Einstellungen

sourceund target muss anders sein.

target

Der Ziel-Message-Broker. Wählen Sie aus den folgenden Optionen aus:

  • LocalMqtt— Der lokale MQTT-Broker, über den Client-Geräte kommunizieren.

  • Pubsub— Der lokale publish/subscribe Greengrass-Nachrichtenbroker.

  • 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. Daher kann es zu zusätzlicher Latenz kommen, wenn Sie MQTT-Nachrichten von Client-Geräten auf dem lokalen MQTT-Broker an diese weiterleiten. AWS IoT Core Weitere Hinweise zur MQTT-Konfiguration auf Kerngeräten finden Sie unter. Konfigurieren Sie MQTT-Timeouts und Cache-Einstellungen

sourceund target muss anders sein.

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 es durch den Port, an port dem der MQTT-Broker arbeitet:. ssl://localhost:port

Standard: ssl://localhost:8883

Beispiel Beispiel: Aktualisierung der Konfigurationszusammenführung

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.

  • Leiten Sie Nachrichten von Client-Geräten zu publish/subscribe Themen, die dem clients/+/detections Themenfilter entsprechen, an lokale Benutzer weiter und fügen Sie das events/input/ Präfix zum Zielthema hinzu. Das resultierende Zielthema entspricht dem events/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 das $aws/rules/StatusUpdateRule/ Präfix zum Zielthema hinzu. In diesem Beispiel werden diese Nachrichten direkt an eine AWS IoT Regel mit dem Namen „StatusUpdateRuleKostenreduzierung“ 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" } } }
2.1.x
mqttTopicMapping

Die Themenzuordnungen, die Sie überbrücken möchten. Diese Komponente abonniert Nachrichten zum Quellthema und veröffentlicht die Nachrichten, die sie erhält, im Zielthema. Jede Themenzuordnung definiert das Thema, den Quelltyp und den Zieltyp.

Dieses Objekt enthält die folgenden Informationen:

topicMappingNameKey

Der Name dieser Themenzuordnung. topicMappingNameKeyErsetzen Sie ihn durch einen Namen, der Ihnen hilft, diese Themenzuordnung zu identifizieren.

Dieses Objekt enthält die folgenden Informationen:

topic

Das Thema oder der Themenfilter, um eine Brücke zwischen den Quell- und Ziel-Brokern zu schlagen.

Wenn Sie den LocalMqtt oder den IotCore Quellbroker angeben, können Sie die Platzhalter + und # MQTT-Topic verwenden, um Nachrichten zu allen Themen weiterzuleiten, die einem Themenfilter entsprechen. Weitere Informationen finden Sie unter MQTT-Themen im Entwicklerhandbuch. AWS IoT Core

source

Der Quell-Message-Broker. Wählen Sie aus den folgenden Optionen aus:

  • LocalMqtt— Der lokale MQTT-Broker, über den Client-Geräte kommunizieren.

  • Pubsub— Der lokale publish/subscribe Greengrass-Nachrichtenbroker.

  • 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. Daher kann es zu zusätzlicher Latenz kommen, wenn Sie MQTT-Nachrichten von Client-Geräten auf dem lokalen MQTT-Broker an diese weiterleiten. AWS IoT Core Weitere Hinweise zur MQTT-Konfiguration auf Kerngeräten finden Sie unter. Konfigurieren Sie MQTT-Timeouts und Cache-Einstellungen

sourceund target muss anders sein.

target

Der Ziel-Message-Broker. Wählen Sie aus den folgenden Optionen aus:

  • LocalMqtt— Der lokale MQTT-Broker, über den Client-Geräte kommunizieren.

  • Pubsub— Der lokale publish/subscribe Greengrass-Nachrichtenbroker.

  • 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. Daher kann es zu zusätzlicher Latenz kommen, wenn Sie MQTT-Nachrichten von Client-Geräten auf dem lokalen MQTT-Broker an diese weiterleiten. AWS IoT Core Weitere Hinweise zur MQTT-Konfiguration auf Kerngeräten finden Sie unter. Konfigurieren Sie MQTT-Timeouts und Cache-Einstellungen

sourceund target muss anders sein.

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 es durch den Port, an port dem der MQTT-Broker arbeitet:. ssl://localhost:port

Standard: ssl://localhost:8883

Beispiel Beispiel: Aktualisierung der Konfigurationszusammenführung

Das folgende Beispiel für ein Konfigurationsupdate legt fest, dass Nachrichten von Client-Geräten AWS IoT Core an clients/MyClientDevice2/hello/world Themen der Kategorie clients/MyClientDevice1/hello/world und weitergeleitet werden.

{ "mqttTopicMapping": { "ClientDevice1HelloWorld": { "topic": "clients/MyClientDevice1/hello/world", "source": "LocalMqtt", "target": "IotCore" }, "ClientDevice2HelloWorld": { "topic": "clients/MyClientDevice2/hello/world", "source": "LocalMqtt", "target": "IotCore" } } }
2.0.x
mqttTopicMapping

Die Themenzuordnungen, die Sie überbrücken möchten. Diese Komponente abonniert Nachrichten zum Quellthema und veröffentlicht die Nachrichten, die sie erhält, im Zielthema. Jede Themenzuordnung definiert das Thema, den Quelltyp und den Zieltyp.

Dieses Objekt enthält die folgenden Informationen:

topicMappingNameKey

Der Name dieser Themenzuordnung. topicMappingNameKeyErsetzen Sie ihn durch einen Namen, der Ihnen hilft, diese Themenzuordnung zu identifizieren.

Dieses Objekt enthält die folgenden Informationen:

topic

Das Thema oder der Themenfilter, um eine Brücke zwischen den Quell- und Ziel-Brokern zu schlagen.

Wenn Sie den LocalMqtt oder den IotCore Quellbroker angeben, können Sie die Platzhalter + und # MQTT-Topic verwenden, um Nachrichten zu allen Themen weiterzuleiten, die einem Themenfilter entsprechen. Weitere Informationen finden Sie unter MQTT-Themen im Entwicklerhandbuch. AWS IoT Core

source

Der Quell-Message-Broker. Wählen Sie aus den folgenden Optionen aus:

  • LocalMqtt— Der lokale MQTT-Broker, über den Client-Geräte kommunizieren.

  • Pubsub— Der lokale publish/subscribe Greengrass-Nachrichtenbroker.

  • 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. Daher kann es zu zusätzlicher Latenz kommen, wenn Sie MQTT-Nachrichten von Client-Geräten auf dem lokalen MQTT-Broker an diese weiterleiten. AWS IoT Core Weitere Hinweise zur MQTT-Konfiguration auf Kerngeräten finden Sie unter. Konfigurieren Sie MQTT-Timeouts und Cache-Einstellungen

sourceund target muss anders sein.

target

Der Ziel-Message-Broker. Wählen Sie aus den folgenden Optionen aus:

  • LocalMqtt— Der lokale MQTT-Broker, über den Client-Geräte kommunizieren.

  • Pubsub— Der lokale publish/subscribe Greengrass-Nachrichtenbroker.

  • 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. Daher kann es zu zusätzlicher Latenz kommen, wenn Sie MQTT-Nachrichten von Client-Geräten auf dem lokalen MQTT-Broker an diese weiterleiten. AWS IoT Core Weitere Hinweise zur MQTT-Konfiguration auf Kerngeräten finden Sie unter. Konfigurieren Sie MQTT-Timeouts und Cache-Einstellungen

sourceund target muss anders sein.

Beispiel Beispiel: Aktualisierung der Konfigurationszusammenführung

Das folgende Beispiel für ein Konfigurationsupdate legt fest, dass Nachrichten von Client-Geräten AWS IoT Core an clients/MyClientDevice2/hello/world Themen der Kategorie clients/MyClientDevice1/hello/world und weitergeleitet werden.

{ "mqttTopicMapping": { "ClientDevice1HelloWorld": { "topic": "clients/MyClientDevice1/hello/world", "source": "LocalMqtt", "target": "IotCore" }, "ClientDevice2HelloWorld": { "topic": "clients/MyClientDevice2/hello/world", "source": "LocalMqtt", "target": "IotCore" } } }

Lokale Protokolldatei

Diese Komponente verwendet dieselbe Protokolldatei wie die Greengrass Nucleus-Komponente.

Linux
/greengrass/v2/logs/greengrass.log
Windows
C:\greengrass\v2\logs\greengrass.log
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 /greengrass/v2 oder C:\greengrass\v2 durch den Pfad zum AWS IoT Greengrass Stammordner.

    Linux
    sudo tail -f /greengrass/v2/logs/greengrass.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait

Änderungsprotokoll

In der folgenden Tabelle werden die Änderungen in den einzelnen Versionen der Komponente beschrieben.

Version

Änderungen

2.3.3

Fehlerbehebungen und Verbesserungen
  • Behebt ein Problem, bei dem eine hohe gleichzeitige Gerätelast dazu führen konnte, dass die MQTT-Bridge nach einem PUBACK-Ausfall keine Nachrichten mehr weiterleitet.

2.3.2

Die Version wurde für die Version 2.5.0 der Authentifizierung des Client-Geräts Client-Geräteauthentifizierung aktualisiert.

2.3.1
Fehlerbehebungen und Verbesserungen

Behebt ein Problem, bei dem der lokale MQTT-Client in eine Trennschleife gerät.

2.3.0
Neue Features

Fügt MQTT5-Unterstützung für Bridging zwischen AWS IoT Core und lokalen MQTT-Quellen hinzu.

2.2.6

Neue Features

Fügt eine neue Konfigurationsoption hinzu. startupTimeoutSeconds

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 Greengrass-Client-Geräteauthentifizierung der Version 2.3.0 aktualisiert.

2.2.3

Diese Version enthält Fehlerbehebungen und Verbesserungen.

2.2.2

Fehlerbehebungen und Verbesserungen
  • Anpassungen protokollieren.

2.2.1

Fehlerbehebungen und Verbesserungen

Behebt Probleme, die dazu führen können, dass die MQTT-Bridge MQTT-Themen nicht abonniert.

2.2.0

Neue Features
  • Fügt Unterstützung für Platzhalter (#und+) für MQTT-Themen hinzu, wenn Sie local publish/subscribe als Quell-Message-Broker angeben.

    Für diese Funktion ist Version 2.6.0 oder höher der Greengrass Nucleus-Komponente erforderlich. Grüngras-Kern

  • Fügt die targetTopicPrefix Option hinzu, die Sie angeben können, um die MQTT-Bridge so zu konfigurieren, dass dem Zielthema ein Präfix hinzugefügt wird, wenn es eine Nachricht weiterleitet.

2.1.1

Fehlerbehebungen und Verbesserungen
  • Behebt Probleme mit der Art und Weise, wie diese Komponente Aktualisierungen zum Zurücksetzen der Konfiguration verarbeitet.

  • Reduziert die Häufigkeit von Verbindungsabbrüchen beim MQTT-Client, wenn Zertifikate rotieren.

2.1.0

Neue Features
  • Fügt den brokerUri Parameter hinzu, der es Ihnen ermöglicht, einen nicht standardmäßigen MQTT-Broker-Port zu verwenden.

2.0.1

Diese Version enthält Fehlerkorrekturen und Verbesserungen.

2.0.0

Erste Version