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

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

与组件中的阴影交互

您可以开发自定义组件,包括 Lambda 函数组件,这些组件使用本地影子服务读取和修改本地影子文档和客户端设备影子文档。

自定义组件使用中的 C Amazon IoT Greengrass ore IPC 库与本地影子服务进行交互。Amazon IoT Device SDK影子管理器组件可在核心设备上启用本地影子服务。

要将影子管理器组件部署到 Greengrass 核心设备,请创建包含该组件的部署。aws.greengrass.ShadowManager

注意

默认情况下,部署影子管理器组件仅启用本地卷影操作。Amazon IoT Greengrass要启用将核心设备阴影的阴影状态信息或客户端设备的任何阴影状态信息同步到中相应的云影文档Amazon IoT Core,必须为包含synchronize参数的影子管理器组件创建配置更新。有关更多信息,请参阅 将本地设备阴影与同步 Amazon IoT Core

检索和修改阴影状态

影子 IPC 操作检索和更新本地影子文档中的状态信息。影子管理器组件负责处理核心设备上这些影子文档的存储。

修改局部阴影状态
  1. 在自定义组件的配方中添加授权策略,以允许该组件接收有关本地影子主题的消息。

    有关授权策略的示例,请参阅本地影子 IPC 授权策略示例

  2. 使用影子 IPC 操作来检索和修改影子状态信息。有关在组件代码中使用影子 IPC 操作的更多信息,请参阅与局部阴影互动

注意

要使核心设备能够与客户端设备影子进行交互,您还必须配置和部署 MQTT 桥接组件。有关更多信息,请参阅启用影子管理器以与客户端设备通信

对阴影状态变化做出反应

Greengrass 组件使用本地发布/订阅接口在核心设备上进行通信。要使自定义组件能够对影子状态变化做出反应,您可以订阅本地发布/订阅主题。这允许组件接收有关本地影子主题的消息,然后对这些消息进行操作。

本地影子主题使用与Amazon IoT设备影子 MQTT 主题相同的格式。有关影子主题的更多信息,请参阅《Amazon IoT开发者指南》中的 Device Shadow MQTT 主题

对局部阴影状态变化做出反应
  1. 在自定义组件的配方中添加访问控制策略,以允许该组件接收有关本地影子主题的消息。

    有关授权策略的示例,请参阅本地影子 IPC 授权策略示例

  2. 要在组件中启动自定义操作,请使用 SubscribeToTopic IPC 操作订阅要接收消息的影子主题。有关在组件代码中使用本地发布/订阅 IPC 操作的更多信息,请参阅。发布/订阅本地消息

  3. 要调用 Lambda 函数,请使用事件源配置提供影子主题的名称并指定它是本地发布/订阅主题。有关创建 Lambda 函数组件的信息,请参阅。运行Amazon Lambda函数

注意

要使核心设备能够与客户端设备影子进行交互,您还必须配置和部署 MQTT 桥接组件。有关更多信息,请参阅启用影子管理器以与客户端设备通信