

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

# 教程：开发可延迟组件更新的 Greengrass 组件
<a name="defer-component-updates-tutorial"></a>

您可以完成本教程来开发延迟 over-the-air部署更新的组件。在将更新部署到设备时，您可能需要根据条件延迟更新，例如：
+ 设备的电池电量不足。
+ 设备正在运行无法中断的进程或作业。
+ 设备的互联网连接有限或昂贵。

**注意**  
*组件*是在 Amazon IoT Greengrass 核心设备上运行的软件模块。您可以利用这些组件创建和管理复杂的应用程序，并将其作为离散构建基块在不同的 Greengrass 核心设备之间重复使用。

在本教程中，您将执行以下操作：

1. 在开发计算机上安装 Greengrass Development Kit CLI（GDK CLI）。GDK CLI 提供的功能可帮助您开发自定义 Greengrass 组件。

1. 开发 Hello World 组件，当核心设备的电池电量低于阈值时，该组件会延迟组件更新。此组件使用 [SubscribeToComponentUpdates](ipc-component-lifecycle.md#ipc-operation-subscribetocomponentupdates)IPC 操作订阅更新通知。收到通知时，它会检查电池电量是否低于可自定义的阈值。如果电池电量低于阈值，它会使用 [DeferComponentUpdate](ipc-component-lifecycle.md#ipc-operation-defercomponentupdate)IPC 操作将更新推迟 30 秒。您可以使用 GDK CLI 在开发计算机上开发此组件。
**注意**  
该组件从您在核心设备上创建的文件中读取电池电量，以模仿真实的电池，因此您可以在没有电池的核心设备上完成本教程。

1. 将该组件发布到 Amazon IoT Greengrass 服务。

1. 将该组件从部署 Amazon Web Services 云 到 Greengrass 核心设备上进行测试。然后，您可以修改核心设备上的虚拟电池电量，并创建其他部署，以查看当电池电量不足时，核心设备如何推迟更新。

您预计需要花费 20-30 分钟来完成本教程。

您已完成本教程。Hello World 组件会根据核心设备的电池电量来推迟或确认更新。有关本教程探讨的主题的更多信息，请参阅以下内容：
+ [开发 Amazon IoT Greengrass 组件](develop-greengrass-components.md)
+ [将 Amazon IoT Greengrass 组件部署到设备](manage-deployments.md)
+ [使用 Amazon IoT Device SDK 与 Greengrass 原子核、其他组件进行通信，以及 Amazon IoT Core与 Greengrass 核、其他组件进行通信 Amazon IoT Core](interprocess-communication.md)
+ [Amazon IoT Greengrass 开发工具包命令行界面](greengrass-development-kit-cli.md)