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.
Themen
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
undMyShadowB
für ein IoT-Objekt mit dem NamenMyDevice1
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 periodic
und 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.