本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将本地设备影子同步Amazon IoT Core
影子管理器组件启用Amazon IoT Greengrass将本地设备影子状态与同步Amazon IoT Core. 您必须修改卷影管理器组件的配置以包含synchronization
配置参数,并指定Amazon IoT设备的事物名称,以及要同步的影子。
当您将阴影管理器配置为同步阴影时,它会同步指定阴影的所有状态更改,无论更改发生在本地影子文档还是云影文档中。
您还可以指定阴影管理器组件是实时同步阴影还是定期同步阴影。默认情况下,shadow manager 组件实时同步阴影,因此核心设备发送和接收来自的阴影更新Amazon IoT Core每次更新发生时。您可以配置定期间隔以减少带宽使用量和费用。
先决条件
将局部阴影与同步Amazon IoT Core,您必须配置 Greengrass 核心设备的Amazon IoT允许以下内容的策略Amazon IoT Core影子策略操作。
-
iot:GetThingShadow
-
iot:UpdateThingShadow
-
iot:DeleteThingShadow
有关更多信息,请参阅下列内容:
配置影子管理器组件
卷影管理器需要一个影子名称映射列表,以便将本地影子文档中的阴影状态信息同步到Amazon IoT Core.
要同步阴影状态,创建部署包括aws.greengrass.ShadowManager
组件,并在中指定要同步的阴影synchronize
部署中的影子管理器配置中的配置参数。
注意
要使核心设备能够与客户端设备影子进行交互,还必须配置和部署 MQTT 桥组件。有关更多信息,请参阅 。启用影子管理器与客户端设备通信.
以下示例配置更新指示影子管理器组件将以下阴影与Amazon IoT Core:
-
核心设备的经典影子
-
命名的
MyCoreShadow
对于核心设备,为 -
名为IoT 事物的经典影子
MyDevice2
-
命名的影子
MyShadowA
和MyShadowB
对于名为的 IoT 事物MyDevice1
此配置更新指定将阴影与Amazon IoT Core实时。如果您使用阴影管理器 v2.1.0 或更高版本,则可以将阴影管理器组件配置为定期同步阴影。要配置此功能,请将同步策略更改为periodic
,并指定delay
间隔的秒数。有关更多信息,请参阅 。策略配置参数的卷影管理器组件。
此配置更新指定在两个方向之间同步阴影Amazon IoT Core和核心设备。如果您使用阴影管理器 v2.2.0 或更高版本,则可以将阴影管理器组件配置为仅在一个方向上同步阴影。要配置此功能,请更改同步direction
到deviceToCloud
要么cloudToDevice
. 有关更多信息,请参阅 。方向配置参数的卷影管理器组件。
{ "strategy": { "type": "realTime" }, "synchronize": { "coreThing": { "classic": true, "namedShadows": [ "MyCoreShadow" ] }, "shadowDocuments": [ { "thingName": "MyDevice1", "classic": false, "namedShadows": [ "MyShadowA", "MyShadowB" ] }, { "thingName": "MyDevice2", "classic": true, "namedShadows": [ ] } ], "direction": "betweenDeviceAndCloud" } }
同步本地影子
Greengrass 核心设备连接到Amazon IoTcloud,则影子管理器将对您在组件配置中指定的阴影执行以下任务。行为取决于您指定的阴影同步方向配置选项。默认情况下,影子管理器使用betweenDeviceAndCloud
选项来同步两个方向的阴影。如果您使用影子管理器 v2.2.0 或更高版本,则可以将核心设备配置为仅在一个方向上同步阴影,这可以是cloudToDevice
要么deviceToCloud
.
-
如果影子同步方向配置为
betweenDeviceAndCloud
要么cloudToDevice
,shadow manager 从中的云影文档中检索报告的状态信息Amazon IoT Core. 然后,它会更新本地存储的卷影文档以同步设备状态。 -
如果影子同步方向配置为
betweenDeviceAndCloud
要么deviceToCloud
,影子管理器将设备的当前状态发布到云影文档。
影子合并冲突行为
在某些情况下,例如当核心设备与 Internet 断开连接时,本地影子服务和Amazon IoT在影子管理器同步更改之前,cloud。因此,本地影子服务和Amazon IoT云
当卷影管理器同步阴影时,它会根据以下行为合并更改:
-
如果您使用早于 v2.2.0 的卷影管理器版本,或者当您指定
betweenDeviceAndCloud
阴影同步方向,以下行为适用:-
当卷影的期望状态下出现合并冲突时,卷影管理器会使用来自Amazon IoT云。
-
当影子的报告状态下出现合并冲突时,卷影管理器会在Amazon IoTcloud 使用来自本地影子文档的值。
-
-
当你指定
deviceToCloud
shadow sync 方向时,阴影管理器会覆盖Amazon IoTcloud 使用来自本地影子文档的值。 -
当你指定
cloudToDevice
shadow sync direction 时,阴影管理器会使用来自Amazon IoT云。