将本地设备影子同步Amazon IoT Core - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将本地设备影子同步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

  • 命名的影子MyShadowAMyShadowB对于名为的 IoT 事物MyDevice1

此配置更新指定将阴影与Amazon IoT Core实时。如果您使用阴影管理器 v2.1.0 或更高版本,则可以将阴影管理器组件配置为定期同步阴影。要配置此功能,请将同步策略更改为periodic,并指定delay间隔的秒数。有关更多信息,请参阅 。策略配置参数的卷影管理器组件。

此配置更新指定在两个方向之间同步阴影Amazon IoT Core和核心设备。如果您使用阴影管理器 v2.2.0 或更高版本,则可以将阴影管理器组件配置为仅在一个方向上同步阴影。要配置此功能,请更改同步directiondeviceToCloud要么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 使用来自本地影子文档的值。

  • 当你指定deviceToCloudshadow sync 方向时,阴影管理器会覆盖Amazon IoTcloud 使用来自本地影子文档的值。

  • 当你指定cloudToDeviceshadow sync direction 时,阴影管理器会使用来自Amazon IoT云。