Interagieren Sie mit Client-Geräten in Komponenten - 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.

Interagieren Sie mit Client-Geräten in Komponenten

Sie können benutzerdefinierte Greengrass-Komponenten entwickeln, die mit Client-Geräten interagieren, die mit einem Core-Gerät verbunden sind. Sie können beispielsweise Komponenten entwickeln, die Folgendes tun:

  • Reagieren Sie auf MQTT-Nachrichten von Client-Geräten und senden Sie Daten an AWS Cloud Ziele.

  • Senden Sie MQTT-Nachrichten an Client-Geräte, um Aktionen zu initiieren.

Client-Geräte stellen über die MQTT-Broker-Komponente, die auf dem Kerngerät ausgeführt wird, eine Verbindung zu einem Kerngerät her und kommunizieren mit diesem. Standardmäßig können Client-Geräte nur über MQTT miteinander kommunizieren, und Greengrass-Komponenten können diese MQTT-Nachrichten nicht empfangen oder Nachrichten an Client-Geräte senden.

Greengrass-Komponenten verwenden die lokale Publish/Subscribe-Schnittstelle, um auf einem Kerngerät zu kommunizieren. Um mit Client-Geräten in Greengrass-Komponenten zu kommunizieren, konfigurieren Sie die MQTT-Bridge-Komponente wie folgt:

  • Leiten Sie MQTT-Nachrichten von Client-Geräten an Local Publish/Subscribe weiter.

  • Leiten Sie MQTT-Nachrichten von lokalen an Client-Geräte weiter. publish/subscribe

Sie können auch mit Schatten von Client-Geräten in Greengrass-Komponenten interagieren. Weitere Informationen finden Sie unter Interagieren Sie mit Schatten auf Client-Geräten und synchronisieren Sie sie.

Konfigurieren und implementieren Sie die MQTT-Bridge-Komponente

Die MQTT-Bridge-Komponente verwendet eine Liste von Themenzuordnungen, die jeweils eine Nachrichtenquelle und ein Nachrichtenziel angeben. Um mit Client-Geräten zu kommunizieren, 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 Kerngerät oder einer Gruppe von Kerngeräten bereitzustellen, erstellen Sie eine Bereitstellung, die die Komponente enthält. aws.greengrass.clientdevices.mqtt.Bridge Geben Sie die Themenzuordnungen in der Konfiguration der MQTT-Bridge-Komponente in der Bereitstellung an. mqttTopicMapping

Das folgende Beispiel definiert eine Bereitstellung, die die MQTT-Bridge-Komponente so konfiguriert, dass sie das clients/MyClientDevice1/hello/world Thema von den Client-Geräten an den lokalen Broker weiterleitet. publish/subscribe Das merge Konfigurationsupdate erfordert ein serialisiertes JSON-Objekt. Weitere Informationen finden Sie unter Komponentenkonfigurationen aktualisieren.

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

Sie können MQTT-Themen-Platzhalter verwenden, um Nachrichten zu Themen weiterzuleiten, die einem Themenfilter entsprechen. Wenn Sie MQTT Bridge v2.2.0 oder höher verwenden, können Sie MQTT-Themen-Platzhalter in Themenfiltern verwenden, wenn der Quellbroker lokal veröffentlichen/abonnieren ist. Weitere Informationen finden Sie unter Konfiguration der MQTT-Bridge-Komponente.

Empfangen Sie MQTT-Nachrichten von Client-Geräten

Sie können die lokalen publish/subscribe Themen abonnieren, die Sie für die MQTT-Bridge-Komponente konfigurieren, um Nachrichten von Client-Geräten zu empfangen.

Um MQTT-Nachrichten von Client-Geräten in benutzerdefinierten Komponenten zu empfangen
  1. Konfigurieren und implementieren Sie die MQTT-Bridge-Komponente, um Nachrichten aus einem MQTT-Thema, in dem Client-Geräte veröffentlichen, an ein lokales Thema weiterzuleiten. publish/subscribe

  2. Verwenden Sie die lokale publish/subscribe IPC-Schnittstelle, um das Thema zu abonnieren, in dem die MQTT-Bridge Nachrichten weiterleitet. Weitere Informationen erhalten Sie unter Lokale Nachrichten veröffentlichen/abonnieren und SubscribeToTopic.

Das Tutorial Client-Geräte Connect und testen enthält einen Abschnitt, in dem Sie eine Komponente entwickeln, die Nachrichten von einem Client-Gerät abonniert. Weitere Informationen finden Sie unter Schritt 4: Entwickeln Sie eine Komponente, die mit Client-Geräten kommuniziert.

Senden Sie MQTT-Nachrichten an Client-Geräte

Sie können in den lokalen publish/subscribe Themen veröffentlichen, die Sie für die MQTT-Bridge-Komponente zum Senden von Nachrichten an Client-Geräte konfigurieren.

Um MQTT-Nachrichten auf Client-Geräten in benutzerdefinierten Komponenten zu veröffentlichen
  1. Konfigurieren und implementieren Sie die MQTT-Bridge-Komponente, um Nachrichten von einem lokalen publish/subscribe Thema an ein MQTT-Thema weiterzuleiten, das von Client-Geräten abonniert wird.

  2. Verwenden Sie die lokale publish/subscribe IPC-Schnittstelle, um zu dem Thema zu veröffentlichen, zu dem die MQTT-Bridge Nachrichten weiterleitet. Weitere Informationen erhalten Sie unter Lokale Nachrichten veröffentlichen/abonnieren und PublishToTopic.