

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

# OTA Update Manager 服务
<a name="ota-manager"></a>

 over-the-air(OTA) 更新管理器服务提供了一种方法：
+ 创建 OTA 更新及其使用的资源，包括 AWS IoT 任务、 AWS IoT 直播和代码签名。
+ 获取有关 OTA 更新的信息。
+ 列出与您的 AWS 账户关联的所有 OTA 更新。
+ 删除 OTA 更新。

OTA 更新是由 OTA Update Manager 服务维护的一种数据结构。其中包含：
+ OTA 更新 ID。
+ OTA 更新描述（可选）。
+ 要更新的设备列表（*目标*）。
+ OTA 更新的类型：CONTINUOUS 或 SNAPSHOT。有关所需的更新类型的讨论，请参阅《AWS IoT 开发人员指南》的[作业](https://docs.aws.amazon.com/iot/latest/developerguide/iot-jobs.html)部分。**
+ 用于执行 OTA 更新的协议为：[MQTT]、[HTTP] 或 [MQTT 和 HTTP]。在指定 MQTT 和 HTTP 时，设备设置会确定所使用的协议。
+ 要发送到目标设备的文件列表。
+ 一个 IAM 角色，用于授予 AWS IoT 访问 Amazon S3、 AWS IoT 任务和 AWS 代码签名资源的访问权限以创建 OTA 更新任务。
+ 用户定义的名称值对列表（可选）。

OTA 更新旨在更新设备固件，但您可以使用它们将想要的任何文件发送到一台或多台注册的设备 AWS IoT。在以无线方式发送固件更新时，建议您对更新进行数字签名，以便接收更新的设备能够验证更新在传输途中未经篡改。

可以使用 HTTP 或 MQTT 协议发送更新后的固件映像，具体取决于您选择的设置。您可以使用[适用于 FreeRTOS 的代码签名](https://docs.aws.amazon.com/signer/latest/developerguide/Welcome.html)来对固件更新进行签名，也可以使用自己的代码签名工具。

为了更好地控制流程，您可以在通过 MQTT 发送更新时使用 [ CreateStream](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateStream.html)API 创建流。在某些情况下，您可以修改 FreeRTOS 代理[代码](https://github.com/aws/amazon-freertos/tree/202012.00/libraries/freertos_plus/aws/ota/src)来调整发送和接收的块的大小。

在创建 OTA 更新时，OTA Manager 服务会创建一个 [AWS IoT 作业](https://docs.aws.amazon.com/iot/latest/developerguide/iot-jobs.html)来通知设备有可用的更新。FreeRTOS OTA 代理将在设备上运行，并侦听更新消息。当有可用更新时，它会通过 HTTP 或 MQTT 请求固件更新映像，并本地存储这些文件。它将检查所下载文件的数字签名，如果签名有效，则安装固件更新。如果未使用 FreeRTOS，则必须实施自己的 OTA 代理，以侦听和下载更新并执行任何安装操作。