Shadow - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

Shadow

影子管理器组件 (aws.greengrass.ShadowManager) 在您的核心设备上启用本地影子服务。本地影子服务允许组件使用进程间通信与本地阴影进行交互。影子管理器组件管理本地影子文档的存储,还处理本地影子状态与 Device Shadow 服务的同步。Amazon IoT

有关 Greengrass 核心设备如何与阴影交互的更多信息,请参阅与设备影子互动

版本

此组件有以下版本:

  • 2.2.x

  • 2.1.x

  • 2.0.x

类型

这个组件是一个插件组件 (aws.greengrass.plugin)。Greengrass 核心在与核心相同的 Java 虚拟机 (JVM) 中运行此组件。当您在核心设备上更改此组件的版本时,nucleus 会重新启动。

此组件使用与 Greengrass 核相同的日志文件。有关更多信息,请参阅 显示器Amazon IoT Greengrass圆木

有关更多信息,请参阅 组件类型

操作系统

此组件可以安装在运行以下操作系统的核心设备上:

  • Linux

  • Windows

要求

此组件有以下要求:

  • (可选)要将影子同步到Device Shadow 服务,Greengrass 核心设备的Amazon IoT策略必须允许以下Amazon IoT Core影子策略操作:Amazon IoT

    • iot:GetThingShadow

    • iot:UpdateThingShadow

    • iot:DeleteThingShadow

    有关这些Amazon IoT Core政策的更多信息,请参阅《Amazon IoT开发者指南》中的Amazon IoT Core策略操作

    有关最低限度Amazon IoT策略的更多信息,请参阅最低Amazon IoT用于 的 策略Amazon IoT Greengrass V2核心设备

附属物

部署组件时,Amazon IoT Greengrass还会部署其依赖项的兼容版本。这意味着您必须满足组件及其所有依赖项的要求才能成功部署该组件。本节列出了此组件已发布版本的依赖关系以及为每个依赖项定义组件版本的语义版本约束。您还可以在Amazon IoT Greengrass控制台中查看每个版本组件的依赖关系。在组件详细信息页面上,查找 “依赖关系” 列表。

2.2.2

2.2.2.2.2。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.2.2.2.2.2.2.2.2.2.0 软性
2.2.1

下表列出了此组件版本 2.2.1 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.2.2.2.2.2.2.2.2.2.8.0 软性
2.1.1 and 2.2.0

下表列出了此组件版本 2.1.1 和 2.2.0 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.2.2.2.2.2.2.2.2.7.0 软性
2.0.5 - 2.1.0

下表列出了此组件版本 2.0.5 到 2.1.0 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.2.2.2.2.2.2.2.2.2.6.0 软性
2.0.3 and 2.0.4

下表列出了此组件版本 2.0.3 和 2.0.4 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.2.2.2.2.2.2.2.2.2.2.5.0 软性
2.0.1 and 2.0.2

下表列出了此组件版本 2.0.1 和 2.0.2 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.2.2.2.2.2.2.2.2.2.4.0 软性
2.0.0

下表列出了此组件 2.0.0 版的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.2.2.2.2.2.2.2.2.3.0 软性

有关组件依赖关系的更多信息,请参阅组件配方参考

配置

此组件提供以下配置参数,您可以在部署组件时对其进行自定义。

2.2.x
strategy

(可选)此组件用于在Amazon IoT Core和核心设备之间同步阴影的策略。

此对象包含以下信息。

type

(可选)此组件用于在Amazon IoT Core和核心设备之间同步阴影的策略类型。从以下选项中进行选择:

  • realTime—Amazon IoT Core 每次发生阴影更新时同步阴影。

  • periodic— 按照您使用Amazon IoT Coredelay配置参数指定的定期间隔同步阴影。

默认值:realTime

delay

(可选)指定同步策略时,此组件与之同步阴影的Amazon IoT Core间隔(以秒为periodic单位)。

注意

periodic

synchronize

(可选)用于确定阴影如何与同步的同步设置Amazon Web Services 云。

注意

必须使用此属性创建配置更新,才能将阴影与同步Amazon Web Services 云。

此对象包含以下信息。

coreThing

(可选)要同步的核心设备影子。此对象包含以下信息。

classic

(可选)默认情况下,影子管理器会将核心设备的经典影子的本地状态与同步Amazon Web Services 云。如果你不想同步经典设备影子,请将此设置为false

默认值:true

namedShadows

(可选)要同步的已命名核心设备影子列表。

警告

该Amazon IoT Greengrass服务使用AWSManagedGreengrassV2Deployment命名的影子来管理针对单个核心设备的部署。这个命名的影子是留给Amazon IoT Greengrass服务使用的。不要更新或删除这个命名的影子。

shadowDocuments

(可选)要同步的其他设备影子列表。此列表中的每个对象都包含以下信息。

thingName

要同步阴影的设备的事物名称。

classic

(可选)如果您不想同步设备的经典设备影子,请将此设置为falsethingName

默认值:true

namedShadows

(可选)要同步的已命名设备影子列表。

direction

(可选)在本地影子服务与之间同步阴影的方向Amazon Web Services 云。您可以配置此选项以减少带宽和与的连接Amazon Web Services 云。从以下选项中进行选择:

  • betweenDeviceAndCloud— 在本地影子服务与之间同步阴影Amazon Web Services 云。

  • deviceToCloud— 将来自本地影子服务的影子更新发送到Amazon Web Services 云,并忽略来自的影子更新Amazon Web Services 云。

  • cloudToDevice— 接收来自的影子更新Amazon Web Services 云,不要将来自本地影子服务的影子更新发送到Amazon Web Services 云。

默认值:BETWEEN_DEVICE_AND_CLOUD

rateLimits

(可选)确定影子服务请求速率限制的设置。

此对象包含以下信息。

maxOutboundSyncUpdatesPerSecond

(可选)设备每秒传输的最大同步请求数。

默认:每秒 100 个请求

maxTotalLocalRequestsRate

(可选)每秒发送到核心设备的最大本地 IPC 请求数。

默认:每秒 200 个请求

maxLocalRequestsPerSecondPerThing

(可选)每秒为每个连接的 IoT 事物发送的最大本地 IPC 请求数。

默认:每件事每秒 20 个请求

注意

。DeviceAmazon IoT ShadowAmazon Web Services 区域。,《Amazon Web Services General RefDe Amazon IoTvice Shadow eral Refices General Refices General Re f

shadowDocumentSizeLimitBytes

(可选)本地阴影的每个 JSON 状态文档的最大允许大小。

如果增加此值,则还必须增加云阴影 JSON 状态文档的资源限制。,《Amazon Web Services General RefDe Amazon IoTvice Shadow eral Refices General Refices General Re f

默认值:8192 字节

最大值:30720 字节

例 示例:配置合并更新

以下示例显示了包含影子管理器组件所有可用配置参数的配置合并更新示例。

{ "strategy": { "type": "periodic", "delay": 300 }, "synchronize": { "coreThing": { "classic": true, "namedShadows": [ "MyCoreShadowA", "MyCoreShadowB" ] }, "shadowDocuments": [ { "thingName": "MyDevice1", "classic": false, "namedShadows": [ "MyShadowA", "MyShadowB" ] }, { "thingName": "MyDevice2", "classic": true, "namedShadows": [] } ], "direction": "betweenDeviceAndCloud" }, "rateLimits": { "maxOutboundSyncUpdatesPerSecond": 100, "maxTotalLocalRequestsRate": 200, "maxLocalRequestsPerSecondPerThing": 20 }, "shadowDocumentSizeLimitBytes": 8192 }
2.1.x
strategy

(可选)此组件用于在Amazon IoT Core和核心设备之间同步阴影的策略。

此对象包含以下信息。

type

(可选)此组件用于在Amazon IoT Core和核心设备之间同步阴影的策略类型。从以下选项中进行选择:

  • realTime—Amazon IoT Core 每次发生阴影更新时同步阴影。

  • periodic— 按照您使用Amazon IoT Coredelay配置参数指定的定期间隔同步阴影。

默认值:realTime

delay

(可选)指定同步策略时,此组件与之同步阴影的Amazon IoT Core间隔(以秒为periodic单位)。

注意

periodic

synchronize

(可选)用于确定阴影如何与同步的同步设置Amazon Web Services 云。

注意

必须使用此属性创建配置更新,才能将阴影与同步Amazon Web Services 云。

此对象包含以下信息。

coreThing

(可选)要同步的核心设备影子。此对象包含以下信息。

classic

(可选)默认情况下,影子管理器会将核心设备的经典影子的本地状态与同步Amazon Web Services 云。如果你不想同步经典设备影子,请将此设置为false

默认值:true

namedShadows

(可选)要同步的已命名核心设备影子列表。

警告

该Amazon IoT Greengrass服务使用AWSManagedGreengrassV2Deployment命名的影子来管理针对单个核心设备的部署。这个命名的影子是留给Amazon IoT Greengrass服务使用的。不要更新或删除这个命名的影子。

shadowDocuments

(可选)要同步的其他设备影子列表。此列表中的每个对象都包含以下信息。

thingName

要同步阴影的设备的事物名称。

classic

(可选)如果您不想同步设备的经典设备影子,请将此设置为falsethingName

默认值:true

namedShadows

(可选)要同步的已命名设备影子列表。

rateLimits

(可选)确定影子服务请求速率限制的设置。

此对象包含以下信息。

maxOutboundSyncUpdatesPerSecond

(可选)设备每秒传输的最大同步请求数。

默认:每秒 100 个请求

maxTotalLocalRequestsRate

(可选)每秒发送到核心设备的最大本地 IPC 请求数。

默认:每秒 200 个请求

maxLocalRequestsPerSecondPerThing

(可选)每秒为每个连接的 IoT 事物发送的最大本地 IPC 请求数。

默认:每件事每秒 20 个请求

注意

。DeviceAmazon IoT ShadowAmazon Web Services 区域。,《Amazon Web Services General RefDe Amazon IoTvice Shadow eral Refices General Refices General Re f

shadowDocumentSizeLimitBytes

(可选)本地阴影的每个 JSON 状态文档的最大允许大小。

如果增加此值,则还必须增加云阴影 JSON 状态文档的资源限制。,《Amazon Web Services General RefDe Amazon IoTvice Shadow eral Refices General Refices General Re f

默认值:8192 字节

最大值:30720 字节

例 示例:配置合并更新

以下示例显示了包含影子管理器组件所有可用配置参数的配置合并更新示例。

{ "strategy": { "type": "periodic", "delay": 300 }, "synchronize": { "coreThing": { "classic": true, "namedShadows": [ "MyCoreShadowA", "MyCoreShadowB" ] }, "shadowDocuments": [ { "thingName": "MyDevice1", "classic": false, "namedShadows": [ "MyShadowA", "MyShadowB" ] }, { "thingName": "MyDevice2", "classic": true, "namedShadows": [] } ] }, "rateLimits": { "maxOutboundSyncUpdatesPerSecond": 100, "maxTotalLocalRequestsRate": 200, "maxLocalRequestsPerSecondPerThing": 20 }, "shadowDocumentSizeLimitBytes": 8192 }
2.0.x
synchronize

(可选)用于确定阴影如何与同步的同步设置Amazon Web Services 云。

注意

必须使用此属性创建配置更新,才能将阴影与同步Amazon Web Services 云。

此对象包含以下信息。

coreThing

(可选)要同步的核心设备影子。此对象包含以下信息。

classic

(可选)默认情况下,影子管理器会将核心设备的经典影子的本地状态与同步Amazon Web Services 云。如果你不想同步经典设备影子,请将此设置为false

默认值:true

namedShadows

(可选)要同步的已命名核心设备影子列表。

警告

该Amazon IoT Greengrass服务使用AWSManagedGreengrassV2Deployment命名的影子来管理针对单个核心设备的部署。这个命名的影子是留给Amazon IoT Greengrass服务使用的。不要更新或删除这个命名的影子。

shadowDocuments

(可选)要同步的其他设备影子列表。此列表中的每个对象都包含以下信息。

thingName

要同步阴影的设备的事物名称。

classic

(可选)如果您不想同步设备的经典设备影子,请将此设置为falsethingName

默认值:true

namedShadows

(可选)要同步的已命名设备影子列表。

rateLimits

(可选)确定影子服务请求速率限制的设置。

此对象包含以下信息。

maxOutboundSyncUpdatesPerSecond

(可选)设备每秒传输的最大同步请求数。

默认:每秒 100 个请求

maxTotalLocalRequestsRate

(可选)每秒发送到核心设备的最大本地 IPC 请求数。

默认:每秒 200 个请求

maxLocalRequestsPerSecondPerThing

(可选)每秒为每个连接的 IoT 事物发送的最大本地 IPC 请求数。

默认:每件事每秒 20 个请求

注意

。DeviceAmazon IoT ShadowAmazon Web Services 区域。,《Amazon Web Services General RefDe Amazon IoTvice Shadow eral Refices General Refices General Re f

shadowDocumentSizeLimitBytes

(可选)本地阴影的每个 JSON 状态文档的最大允许大小。

如果增加此值,则还必须增加云阴影 JSON 状态文档的资源限制。,《Amazon Web Services General RefDe Amazon IoTvice Shadow eral Refices General Refices General Re f

默认值:8192 字节

最大值:30720 字节

例 示例:配置合并更新

以下示例显示了包含影子管理器组件所有可用配置参数的配置合并更新示例。

{ "synchronize": { "coreThing": { "classic": true, "namedShadows": [ "MyCoreShadowA", "MyCoreShadowB" ] }, "shadowDocuments": [ { "thingName": "MyDevice1", "classic": false, "namedShadows": [ "MyShadowA", "MyShadowB" ] }, { "thingName": "MyDevice2", "classic": true, "namedShadows": [] } ] }, "rateLimits": { "maxOutboundSyncUpdatesPerSecond": 100, "maxTotalLocalRequestsRate": 200, "maxLocalRequestsPerSecondPerThing": 20 }, "shadowDocumentSizeLimitBytes": 8192 }

此组件使用与 Greengrass 核心组件相同的日志文件。

Linux
/greengrass/v2/logs/greengrass.log
Windows
C:\greengrass\v2\logs\greengrass.log

查看此组件的日志

  • 在核心设备上运行以下命令以实时查看此组件的日志文件。将 /greengrass/v2C:\greengrass\v2 替换为Amazon IoT Greengrass根文件夹的路径。

    Linux
    sudo tail -f /greengrass/v2/logs/greengrass.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait

更改日志

版本

更改

2.2.2

Greengrass ndp2.8.0。

2.2.1

Gregregrasn2.7.0。

2.2.0

新功能
  • 通过本地发布/订阅接口增加对本地影子服务的支持。现在,您可以就影子 MQTT 主题与本地发布/订阅消息代理进行通信,以获取、更新和删除核心设备上的影子。此功能允许您使用 MQTT 桥在客户端设备和本地发布/订阅接口之间中继有关影子主题的消息,从而将客户端设备连接到本地影子服务。

    此功能需要 v2.6.0 或更高版本的 Greengrass 核心组件。要将客户端设备连接到本地影子服务,还必须使用 v2.2.0 或更高版本的 MQTT 桥接组件

  • 添加了一个direction选项,您可以配置该选项以自定义在本地阴影服务与之间同步阴影的方向Amazon Web Services 云。您可以配置此选项以减少带宽和与的连接Amazon Web Services 云。

2.1.1

  • 修复了 JSON 设备影子状态文档desiredreported部分的最大深度为 4 个级别而不是 5 个级别的问题。

  • Gregrasndp2.6.0。

2.1.0

新功能
  • 增加了对定期影子同步间隔的支持,因此您可以配置核心设备以减少带宽使用量和费用。

2.0.6

2.0.5

Gregregrasn2.5.0。

2.0.4

  • 修复了导致影子管理器删除之前删除的任何影子的新创建版本的问题。

  • 更新DeleteThingShadow IPC 操作以在调用时增加影子版本。

2.0.3

Gregregrasn2.4.0。

2.0.2

  • 修复了导致影子管理器在同步暗影状态时无法识别该delta属性的问题Amazon IoT Core。

  • 修复了有时会导致阴影同步请求合并不正确的问题。

2.0.1

Gregregrasn2.3.0。

2.0.0

初始版本。