本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
您可以开发自定义组件(包括 Lambda 函数组件),使用本地影子服务读取和修改本地影子文档和客户端设备影子文档。
自定义组件使用中的 C AWS IoT Greengrass ore IPC 库与本地影子服务进行交互。 AWS IoT Device SDK影子管理器组件在核心设备上支持本地影子服务。
要将影子管理器组件部署到 Greengrass 核心设备,请创建包含 aws.greengrass.ShadowManager 组件的部署。
注意
默认情况下,部署影子管理器组件仅支持本地影子操作。 AWS IoT Greengrass 要启用将核心设备阴影的阴影状态信息或客户端设备的任何阴影状态信息同步到中相应的云影文档 AWS IoT Core,必须为包含synchronize
参数的影子管理器组件创建配置更新。有关更多信息,请参阅 将本地设备阴影与同步 AWS IoT Core。
检索和修改影子状态
影子 IPC 操作会检索和更新本地影子文档中的状态信息。影子管理器组件负责处理核心设备上这些影子文档的存储。
修改本地影子状态
-
在自定义组件的配方中添加授权策略,以允许组件接收有关本地影子主题的消息。
有关授权策略示例,请参阅本地影子 IPC 授权策略示例。
-
使用影子 IPC 操作来检索和修改影子状态信息。有关在组件代码中使用影子 IPC 操作的更多信息,请参阅与本地影子交互。
注意
要使核心设备能够与客户端设备影子交互,您还必须配置和部署 MQTT 网桥组件。有关更多信息,请参阅启用影子管理器以与客户端设备通信。
应对影子状态更改
Greengrass 组件使用本地主题。publish/subscribe interface to communicate on a core device. To enable a custom component to react to shadow state changes, you can subscribe to the local publish/subscribe这样允许组件接收有关本地影子主题的消息,然后处理这些消息。
本地影子主题使用的格式与 AWS IoT 设备影子 MQTT 主题的格式相同。有关更多信息,请参阅《AWS IoT 开发人员指南》中的设备影子 MQTT 主题。
应对本地影子状态更改
-
在自定义组件的配方中添加访问控制策略,以允许组件接收有关本地影子主题的消息。
有关授权策略示例,请参阅本地影子 IPC 授权策略示例。
-
要在组件中启动自定义操作,请使用
SubscribeToTopic
IPC 操作订阅要接收的消息所关于的影子主题。有关在组件代码中使用本地发布/订阅 IPC 操作的更多信息,请参阅发布/订阅本地消息。 -
要调用 Lambda 函数,请使用事件源配置提供影子主题的名称并指定它是本地发布/订阅主题。有关创建 Lambda 函数组件的更多信息,请参阅运行 AWS Lambda 函数。
注意
要使核心设备能够与客户端设备影子交互,您还必须配置和部署 MQTT 网桥组件。有关更多信息,请参阅启用影子管理器以与客户端设备通信。