Interagieren und Synchronisieren von Client-Geräteschatten - 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 und Synchronisieren von Client-Geräteschatten

Sie können die Shadow Manager-Komponente verwenden, um lokale Schatten zu verwalten, einschließlich Client-Geräteschatten. Sie können den Shadow Manager verwenden, um Folgendes zu tun:

  • Interagieren Sie mit Client-Geräteschatten in Greengrass-Komponenten.

  • Synchronisieren Sie Schatten von Client-Geräten mit AWS IoT Core.

Anmerkung

Die Shadow-Manager-Komponente synchronisiert AWS IoT Core standardmäßig keine Schatten mit . Sie müssen die Shadow Manager-Komponente konfigurieren, um anzugeben, welche Client-Geräteschatten synchronisiert werden sollen.

Voraussetzungen

Um mit Client-Geräteschatten zu interagieren und Client-Geräteschatten mit zu synchronisierenAWS IoT Core, muss ein Core-Gerät die folgenden Anforderungen erfüllen:

Aktivieren der Kommunikation zwischen Shadow Manager und Client-Geräten

Standardmäßig verwaltet die Shadow Manager-Komponente keine Client-Geräteschatten. Um dieses Feature zu aktivieren, müssen Sie MQTT-Nachrichten zwischen Client-Geräten und der Shadow-Manager-Komponente weiterleiten. Client-Geräte verwenden MQTT-Nachrichten, um Geräteschattenaktualisierungen zu empfangen und zu senden. Die Shadow Manager-Komponente abonniert die lokale Greengrass-Publish/Subscribe-Schnittstelle, sodass Sie die MQTT-Bridge-Komponente so konfigurieren können, dass MQTT-Nachrichten an Geräteschattenthemen weitergeleitet werden.

Die MQTT-Bridge-Komponente verbraucht eine Liste von Themenzuordnungen, die jeweils eine Nachrichtenquelle und ein Nachrichtenziel angeben. Damit die Shadow-Manager-Komponente Client-Geräteschatten verwalten kann, stellen Sie die MQTT-Bridge-Komponente bereit und geben Sie die Schattenthemen für die Client-Geräteschatten an. Sie müssen die Brücke so konfigurieren, dass Nachrichten in beide Richtungen zwischen lokaler MQTT und lokaler Veröffentlichung/dem lokalen Abonnement weitergeleitet werden.

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.

Verwenden Sie die folgenden Beispiele, um die MQTT-Bridge-Komponente so zu konfigurieren, dass sie die Kommunikation zwischen Client-Geräten und der Shadow-Manager-Komponente ermöglicht.

Anmerkung

Sie können diese Konfigurationsbeispiele in der -AWS IoT GreengrassKonsole verwenden. Wenn Sie die AWS IoT Greengrass API verwenden, erfordert das merge Konfigurationsupdate ein serialisiertes JSON-Objekt, daher müssen Sie die folgenden JSON-Objekte in Zeichenfolgen serialisieren. Weitere Informationen finden Sie unter Komponentenkonfigurationen aktualisieren.

Beispiel: Verwalten aller Client-Geräteschatten

Das folgende Beispiel für eine MQTT-Bridge-Konfiguration ermöglicht es dem Shadow Manager, alle Schatten für alle Client-Geräte zu verwalten.

{ "mqttTopicMapping": { "ShadowsLocalMqttToPubsub": { "topic": "$aws/things/+/shadow/#", "source": "LocalMqtt", "target": "Pubsub" }, "ShadowsPubsubToLocalMqtt": { "topic": "$aws/things/+/shadow/#", "source": "Pubsub", "target": "LocalMqtt" } } }
Beispiel: Verwalten von Schatten für ein Client-Gerät

Das folgende Beispiel für eine MQTT-Bridge-Konfiguration ermöglicht es dem Shadow Manager, alle Schatten für ein Client-Gerät mit dem Namen zu verwaltenMyClientDevice.

{ "mqttTopicMapping": { "ShadowsLocalMqttToPubsub": { "topic": "$aws/things/MyClientDevice/shadow/#", "source": "LocalMqtt", "target": "Pubsub" }, "ShadowsPubsubToLocalMqtt": { "topic": "$aws/things/MyClientDevice/shadow/#", "source": "Pubsub", "target": "LocalMqtt" } } }
Beispiel: Verwalten eines benannten Schattens für alle Client-Geräte

Das folgende Beispiel für eine MQTT-Bridge-Konfiguration ermöglicht es dem Shadow Manager, einen Schatten mit dem Namen DeviceConfiguration für alle Client-Geräte zu verwalten.

{ "mqttTopicMapping": { "ShadowsLocalMqttToPubsub": { "topic": "$aws/things/+/shadow/name/DeviceConfiguration/#", "source": "LocalMqtt", "target": "Pubsub" }, "ShadowsPubsubToLocalMqtt": { "topic": "$aws/things/+/shadow/name/DeviceConfiguration/#", "source": "Pubsub", "target": "LocalMqtt" } } }
Beispiel: Verwalten der unbenannten Schatten aller Client-Geräte

Das folgende Beispiel für eine MQTT-Bridge-Konfiguration ermöglicht es dem Shadow Manager, unbenannte Schatten, aber keine benannten Schatten, für alle Client-Geräte zu verwalten.

{ "mqttTopicMapping": { "DeleteShadowLocalMqttToPubsub": { "topic": "$aws/things/+/shadow/delete", "source": "LocalMqtt", "target": "Pubsub" }, "DeleteShadowPubsubToLocalMqtt": { "topic": "$aws/things/+/shadow/delete/#", "source": "Pubsub", "target": "LocalMqtt" }, "GetShadowLocalMqttToPubsub": { "topic": "$aws/things/+/shadow/get", "source": "LocalMqtt", "target": "Pubsub" }, "GetShadowPubsubToLocalMqtt": { "topic": "$aws/things/+/shadow/get/#", "source": "Pubsub", "target": "LocalMqtt" }, "UpdateShadowLocalMqttToPubsub": { "topic": "$aws/things/+/shadow/update", "source": "LocalMqtt", "target": "Pubsub" }, "UpdateShadowPubsubToLocalMqtt": { "topic": "$aws/things/+/shadow/update/#", "source": "Pubsub", "target": "LocalMqtt" } } }

Interagieren mit Client-Geräteschatten in Komponenten

Sie können benutzerdefinierte Komponenten entwickeln, die den lokalen Schattenservice verwenden, um die lokalen Schattendokumente von Client-Geräten zu lesen und zu ändern. Weitere Informationen finden Sie unter Interagieren mit Schatten in Komponenten.

Schatten von Client-Geräten mit synchronisieren AWS IoT Core

Sie können die Shadow Manager-Komponente so konfigurieren, dass lokale Client-Geräteschattenstatus mit synchronisiert werdenAWS IoT Core. Weitere Informationen finden Sie unter Lokale Geräteschatten mit synchronisieren AWS IoT Core.