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

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

与组件中的阴影进行交互

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

自定义组件使用Amazon IoT Greengrass中的核心 IPC 库Amazon IoT Device SDK. 这些区域有:影子管理器组件在核心设备上启用本地影子服务。

将影子管理器组件部署到 Greengrass 核心设备,创建部署这包括aws.greengrass.ShadowManager组件。

注意

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

检索和修改阴影状态

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

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

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

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

注意

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

对阴影状态变化做出反应

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

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

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

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

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

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

注意

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