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

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

影子经理

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

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

版本

此组件有以下版本:

  • 2.3.x

  • 2.2.x

  • 2.1.x

  • 2.0.x

类型

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

该组件使用与 Greengrass 核心相同的日志文件。有关更多信息,请参阅监控Amazon IoT Greengrass日志

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

操作系统

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

  • Linux

  • Windows

要求

此组件具有以下要求:

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

    • iot:GetThingShadow

    • iot:UpdateThingShadow

    • iot:DeleteThingShadow

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

    有关最低Amazon IoT政策的更多信息,请参阅Amazon IoT Greengrass V2核心设备的最低Amazon IoT政策

附属物

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

2.3.0 and 2.3.1

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

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.5.0 <3.0.0 软性
2.2.3 and 2.2.4

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

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.2.0 <3.0.0 软性
2.2.2

下表列出了此组件版本 2.2.2 的依赖项。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

配置

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

2.3.x
strategy

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

此对象包含以下信息。

type

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

  • realTime—Amazon IoT Core 每次进行影子更新时同步阴影。

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

默认值: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命名的 shadow 来管理针对单个核心设备的部署。这个命名的 shadow 留给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 个请求

注意

这些速率限制参数定义本地影子服务每秒请求。每秒请求 Deferal Services Services SDevAmazon IoT ice Shadow es SAmazon Web Services 区域 ervices 的最大次数 有关更多信息,请参阅 Amazon Web Services ServicAmazon IoT Device Shadow eral Re ference中的适用于 API 的限制。

shadowDocumentSizeLimitBytes

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

如果您增加此值,则还必须增加云影的 JSON 状态文档的资源限制。有关更多信息,请参阅 Amazon Web Services ServicAmazon IoT Device Shadow eral Re ference中的适用于 API 的限制。

默认值: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.2.x
strategy

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

此对象包含以下信息。

type

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

  • realTime—Amazon IoT Core 每次进行影子更新时同步阴影。

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

默认值: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命名的 shadow 来管理针对单个核心设备的部署。这个命名的 shadow 留给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 个请求

注意

这些速率限制参数定义本地影子服务每秒请求。每秒请求 Deferal Services Services SDevAmazon IoT ice Shadow es SAmazon Web Services 区域 ervices 的最大次数 有关更多信息,请参阅 Amazon Web Services ServicAmazon IoT Device Shadow eral Re ference中的适用于 API 的限制。

shadowDocumentSizeLimitBytes

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

如果您增加此值,则还必须增加云影的 JSON 状态文档的资源限制。有关更多信息,请参阅 Amazon Web Services ServicAmazon IoT Device Shadow eral Re ference中的适用于 API 的限制。

默认值: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 Core 按您使用delay配置参数指定的定期间隔与阴影同步。

默认值: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命名的 shadow 来管理针对单个核心设备的部署。这个命名的 shadow 留给Amazon IoT Greengrass服务使用。请勿更新或删除此命名影子。

shadowDocuments

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

thingName

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

classic

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

默认值:true

namedShadows

(可选)要同步的命名设备影子列表。您必须指定阴影的确切名称。

rateLimits

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

此对象包含以下信息。

maxOutboundSyncUpdatesPerSecond

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

默认值:100 个请求/秒

maxTotalLocalRequestsRate

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

默认值:200 个请求/秒

maxLocalRequestsPerSecondPerThing

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

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

注意

这些速率限制参数定义本地影子服务每秒请求。每秒请求 Deferal Services Services SDevAmazon IoT ice Shadow es SAmazon Web Services 区域 ervices 的最大次数 有关更多信息,请参阅 Amazon Web Services ServicAmazon IoT Device Shadow eral Re ference中的适用于 API 的限制。

shadowDocumentSizeLimitBytes

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

如果您增加此值,则还必须增加云影的 JSON 状态文档的资源限制。有关更多信息,请参阅 Amazon Web Services ServicAmazon IoT Device Shadow eral Re ference中的适用于 API 的限制。

默认值: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命名的 shadow 来管理针对单个核心设备的部署。这个命名的 shadow 留给Amazon IoT Greengrass服务使用。请勿更新或删除此命名影子。

shadowDocuments

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

thingName

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

classic

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

默认值:true

namedShadows

(可选)要同步的命名设备影子列表。您必须指定阴影的确切名称。

rateLimits

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

此对象包含以下信息。

maxOutboundSyncUpdatesPerSecond

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

默认值:100 个请求/秒

maxTotalLocalRequestsRate

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

默认值:200 个请求/秒

maxLocalRequestsPerSecondPerThing

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

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

注意

这些速率限制参数定义每秒请求 Loint Services 每秒请求。每秒请求 Deferal Services Services SDevAmazon IoT ice Shadow es SAmazon Web Services 区域 ervices 的最大次数 有关更多信息,请参阅 Amazon Web Services ServicAmazon IoT Device Shadow eral Re ference中的适用于 API 的限制。

shadowDocumentSizeLimitBytes

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

如果您增加此值,则还必须增加云影的 JSON 状态文档的资源限制。有关更多信息,请参阅 Amazon Web Services ServicAmazon IoT Device Shadow eral Re ference中的适用于 API 的限制。

默认值: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 nucleus 组件相同的日志文件。

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.3.1

错误修复与改进
  • 修复了可能阻止云影更新同步的情况。

  • 修复了对命名影子同步配置的更改仅适用于一个命名影子的问题。

2.3.0

错误修复与改进
  • 修复了当 Greengrass 设备私钥存储在硬件安全模块中时可能会阻止影子同步的问题。

2.2.4

错误修复与改进
  • 修复了更新本地影子文档时对阴影大小的验证与云端不一致的问题。

  • 修复了部署在配置节点RESET上执行时影子管理器停止监听配置更新的问题。

2.2.3

版本更新为 Greengrass ath nucker 版本 2.9.0。

2.2.2

版本更新为 Greengrass h Nucker 版本 2.8.0。

2.2.1

版本更新为 Greengrass ath nucker 版本 2.7.0。

2.2.0

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

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

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

2.1.1

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

  • 版本更新为 Greengrass ath Nucker 版本 2.6.0

2.1.0

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

2.0.6

此版本包含错误修复和改进。

2.0.5

版本更新为 Greengrass ath Nucker 版本 2.5.0

2.0.4

错误修复与改进
  • 修复了导致影子管理器删除先前删除的任何影子的新创建版本的问题。

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

2.0.3

版本更新为 Greengrass ath Nucker 版本 2.4.0

2.0.2

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

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

2.0.1

版本更新为 Greengrass ath Nucker 版本 2.3.0

2.0.0

初始版本。