Lokale Geräteschatten mit synchronisieren 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.

Lokale Geräteschatten mit synchronisieren AWS IoT Core

Die Schattenmanager-Komponente ermöglicht es AWS IoT Greengrass, lokale Geräteschattenzustände mit zu synchronisierenAWS IoT Core. Sie müssen die Konfiguration der Shadow-Manager-Komponente so ändern, dass sie den synchronization Konfigurationsparameter enthält, und die AWS IoT Objektnamen für Ihre Geräte und die Schatten angeben, die Sie synchronisieren möchten.

Wenn Sie Shadow Manager für die Synchronisierung von Schatten konfigurieren, synchronisiert er alle Statusänderungen für bestimmte Schatten, unabhängig davon, ob die Änderungen in lokalen Schattendokumenten oder in Cloud-Shadow-Dokumenten erfolgen.

Sie können auch angeben, ob die Shadow-Manager-Komponente Schatten in Echtzeit oder in einem regelmäßigen Intervall synchronisiert. Standardmäßig synchronisiert die Shadow-Manager-Komponente Schatten in Echtzeit, sodass das Core-Gerät Schattenaktualisierungen an und von sendet und empfängt, AWS IoT Core wenn jede Aktualisierung erfolgt. Sie können periodische Intervalle konfigurieren, um die Bandbreitennutzung und -gebühren zu reduzieren.

Voraussetzungen

Um lokale Schatten mit zu synchronisierenAWS IoT Core, müssen Sie die AWS IoT Richtlinie des Greengrass-Core-Geräts so konfigurieren, dass die folgenden AWS IoT Core Schattenrichtlinienaktionen zugelassen werden.

  • iot:GetThingShadow

  • iot:UpdateThingShadow

  • iot:DeleteThingShadow

Weitere Informationen finden Sie hier:

Konfigurieren der Shadow Manager-Komponente

Der Schattenmanager benötigt eine Liste von Schattennamenzuordnungen, um Schattenstatusinformationen in lokalen Schattendokumenten mit Cloud-Shadow-Dokumenten in zu synchronisierenAWS IoT Core.

Um Schattenstatus zu synchronisieren, erstellen Sie eine Bereitstellung, die die aws.greengrass.ShadowManager Komponente enthält, und geben Sie die Schatten an, die Sie im synchronize Konfigurationsparameter in der Shadow-Manager-Konfiguration in der Bereitstellung synchronisieren möchten.

Anmerkung

Damit ein Core-Gerät mit Client-Geräteschatten interagieren kann, müssen Sie auch die MQTT-Bridge-Komponente konfigurieren und bereitstellen. Weitere Informationen finden Sie unter Schattenmanager für die Kommunikation mit Client-Geräten aktivieren.

Das folgende Beispielkonfigurationsupdate weist die Shadow Manager-Komponente an, die folgenden Schatten mit zu synchronisierenAWS IoT Core:

  • Der klassische Schatten für das Core-Gerät

  • Der benannte MyCoreShadow für das Core-Gerät

  • Der klassische Schatten für ein IoT-Objekt mit dem Namen MyDevice2

  • Die benannten Schatten MyShadowA und MyShadowB für ein IoT-Objekt mit dem Namen MyDevice1

Dieses Konfigurationsupdate gibt an, Schatten mit AWS IoT Core in Echtzeit zu synchronisieren. Wenn Sie Shadow Manager v2.1.0 oder höher verwenden, können Sie die Shadow-Manager-Komponente so konfigurieren, dass Schatten in einem regelmäßigen Intervall synchronisiert werden. Um dieses Feature zu konfigurieren, ändern Sie die Synchronisierungsstrategie in periodicund geben Sie einen delay in Sekunden für das Intervall an. Weitere Informationen finden Sie im Strategiekonfigurationsparameter der Shadow Manager-Komponente.

Dieses Konfigurationsupdate gibt an, Schatten in beiden Richtungen zwischen AWS IoT Core und dem Core-Gerät zu synchronisieren. Wenn Sie Shadow Manager v2.2.0 oder höher verwenden, können Sie die Shadow-Manager-Komponente so konfigurieren, dass Schatten nur in eine Richtung synchronisiert werden. Um dieses Feature zu konfigurieren, ändern Sie die Synchronisierung direction in deviceToCloud oder cloudToDevice. Weitere Informationen finden Sie im Konfigurationsparameter für die Richtung der Shadow Manager-Komponente.

{ "strategy": { "type": "realTime" }, "synchronize": { "coreThing": { "classic": true, "namedShadows": [ "MyCoreShadow" ] }, "shadowDocuments": [ { "thingName": "MyDevice1", "classic": false, "namedShadows": [ "MyShadowA", "MyShadowB" ] }, { "thingName": "MyDevice2", "classic": true, "namedShadows": [ ] } ], "direction": "betweenDeviceAndCloud" } }

Lokale Schatten synchronisieren

Wenn das Greengrass-Core-Gerät mit der AWS IoT Cloud verbunden ist, führt der Shadow Manager die folgenden Aufgaben für die Schatten aus, die Sie in der Komponentenkonfiguration angeben. Das Verhalten hängt von der Konfigurationsoption für die Schattensynchronisierungsrichtung ab, die Sie angeben. Standardmäßig verwendet der Shadow Manager die betweenDeviceAndCloud Option , um Schatten in beide Richtungen zu synchronisieren. Wenn Sie Shadow Manager v2.2.0 oder höher verwenden, können Sie das Core-Gerät so konfigurieren, dass Schatten nur in einer Richtung synchronisiert werden, was cloudToDevice oder sein kanndeviceToCloud.

  • Wenn die Konfiguration der Schattensynchronisierungsrichtung betweenDeviceAndCloud oder istcloudToDevice, ruft der Schattenmanager die gemeldeten Statusinformationen aus dem Cloud-Schattendokument in abAWS IoT Core. Anschließend werden lokal gespeicherte Schattendokumente aktualisiert, um den Gerätestatus zu synchronisieren.

  • Wenn die Konfiguration der Schattensynchronisierungsrichtung betweenDeviceAndCloud oder istdeviceToCloud, veröffentlicht Shadow Manager den aktuellen Status des Geräts im Cloud-Schattendokument.

Verhalten bei der Zusammenführung von Schattenkonflikten

In einigen Fällen, z. B. wenn das Core-Gerät vom Internet getrennt wird, kann sich ein Schatten im lokalen Schattenservice und in der AWS IoT Cloud ändern, bevor der Schattenmanager die Änderungen synchronisiert. Daher unterscheiden sich die gewünschten und gemeldeten Zustände zwischen dem lokalen Schattendienst und der AWS IoT Cloud

Wenn der Schattenmanager den Schatten synchronisiert, führt er die Änderungen gemäß dem folgenden Verhalten zusammen:

  • Wenn Sie eine Version von Shadow Manager vor v2.2.0 verwenden oder die betweenDeviceAndCloud Schattensynchronisierungsrichtung angeben, gilt das folgende Verhalten:

    • Wenn ein Zusammenführungskonflikt im gewünschten Status eines Schattens vorliegt, überschreibt der Schattenmanager den widersprüchlichen Abschnitt des lokalen Schattendokuments mit dem Wert aus der AWS IoT Cloud.

    • Wenn ein Zusammenführungskonflikt im gemeldeten Status eines Schattens vorliegt, überschreibt der Schattenmanager den widersprüchlichen Abschnitt des Schattens in der AWS IoT Cloud mit dem Wert aus dem lokalen Schattendokument.

  • Wenn Sie die Richtung der deviceToCloud Schattensynchronisierung angeben, überschreibt der Schattenmanager den widersprüchlichen Abschnitt des Schattens in der AWS IoT Cloud mit dem Wert aus dem lokalen Schattendokument.

  • Wenn Sie die Richtung der cloudToDevice Schattensynchronisierung angeben, überschreibt der Schattenmanager den widersprüchlichen Abschnitt des lokalen Schattendokuments mit dem Wert aus der AWS IoT Cloud.