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 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 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 unterMQTT-Nachrichten veröffentlichen/abonnieren AWS IoT Core.

    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

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 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 Art 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 Art 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 Art 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 Art 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 Art 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 Art 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 Art der Abhängigkeit
Authentifizierung auf dem Client-Gerät >=2.0.0 <2.1.0 Hart

Weitere Informationen zu Komponentenabhängigkeiten finden Sie in der Referenz zu den Komponentenrezepten.

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

sourceund target 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

sourceund target 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 passenden topicMappingNameSchlüssel, der mqttTopicMapping 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" } } }

noLocalwird nur für Routen unterstützt, auf denen der source 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.

retainAsPublishedwird nur für Routen unterstützt, bei denen dies der source 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 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

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 das events/input/ Präfix 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 dem Zielthema das $aws/rules/StatusUpdateRule/ Präfix hinzu. In diesem Beispiel werden diese Nachrichten direkt an eine AWS IoT Regel mit dem Namen „StatusUpdateRuleKosten 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" } }
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. 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

sourceund target 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

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 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 das events/input/ Präfix 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 dem Zielthema das $aws/rules/StatusUpdateRule/ Präfix hinzu. In diesem Beispiel werden diese Nachrichten direkt an eine AWS IoT Regel mit dem Namen „StatusUpdateRuleKosten 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" } } }
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 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

sourceund target 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

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

Standard: ssl://localhost:8883

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.

  • 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 das events/input/ Präfix 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 dem Zielthema das $aws/rules/StatusUpdateRule/ Präfix hinzu. In diesem Beispiel werden diese Nachrichten direkt an eine AWS IoT Regel mit dem Namen „StatusUpdateRuleKosten 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" } } }
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 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.

Wenn Sie den LocalMqtt oder den IotCore Quellbroker angeben, können Sie die Topic-Platzhalter + und den # 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

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

sourceund target 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

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

Standard: ssl://localhost:8883

Beispiel: Aktualisierung der Konfigurationszusammenführung

Das folgende Beispiel für ein Konfigurationsupdate spezifiziert die Weiterleitung von Nachrichten von Client-Geräten AWS IoT Core an die clients/MyClientDevice2/hello/world Themen clients/MyClientDevice1/hello/world und.

{ "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 verbinden 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.

Wenn Sie den LocalMqtt oder den IotCore Quellbroker angeben, können Sie die Topic-Platzhalter + und den # 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

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

sourceund target 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

sourceund target muss anders sein.

Beispiel: Aktualisierung der Zusammenführung von Konfigurationen

Das folgende Beispiel für ein Konfigurationsupdate spezifiziert die Weiterleitung von Nachrichten von Client-Geräten AWS IoT Core an die clients/MyClientDevice2/hello/world Themen clients/MyClientDevice1/hello/world und.

{ "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.2

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

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

2.2.3

Diese Version enthält Fehlerkorrekturen und Verbesserungen.

2.2.2

Fehlerkorrekturen und Verbesserungen
  • Anpassungen protokollieren.

2.2.1

Fehlerkorrekturen und Verbesserungen

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

2.2.0

Neue Features
  • Integriert die Unterstützung für Platzhalter (#und+) für MQTT-Themen, wenn Sie local publish/subscribe als Quellnachrichtenbroker angeben.

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

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

2.1.1

Fehlerkorrekturen und Verbesserungen
  • Behebt Probleme mit der Art und Weise, wie diese Komponente Updates 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