

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

# 创建 OTA 更新（AWS IoT 控制台）
<a name="ota-console-workflow"></a>

1. 在 AWS IoT 控制台的导航窗格中，在 “**管理**” 下选择 “**远程操作**”，然后选择 “**作业**”。

1. 请选择**创建任务**。

1. 在**作业类型**下，选择**创建 FreeRTOS OTA 更新作业**，然后选择**下一步**。

1. 在**作业属性**中，输入**作业名称**和（可选）作业的**描述**，然后选择**下一步**。

1. 可以将一个 OTA 更新部署到单个设备或一组设备。在**要更新的设备**下，从下拉列表中选择一个或多个事物或事物组。

1. 在**选择文件传输协议**下，选择 **HTTP** 或 **MQTT**，或者同时选择两者以允许每台设备确定要使用的协议。

1. 在**签名并选择文件**下，选择**为我签署一个新文件**。

1. 在**代码签名配置文件**下，选择**创建新配置文件**。

1. 在 **Create a code signing profile (创建代码签名配置文件)** 中，为代码签名配置文件输入名称。

   1. 在 **Device hardware platform (设备硬件平台)** 下，选择硬件平台。
**注意**  
该列表中只显示了符合 FreeRTOS 条件的硬件平台。如果您正在测试不符合条件的平台，并且使用 ECDSA P-256 SHA-256 密码套件进行签名，则可以选择 Windows 模拟器代码签名配置文件以生成兼容签名。如果您使用的是不合格的平台，并且使用的是 ECDSA P-256 SHA-256 以外的密码套件进行签名，则可以使用代码签名 AWS IoT，也可以自己签署固件更新。有关更多信息，请参阅 [对固件更新进行数字签名](ota-cli-workflow.md#ota-sign-cli)。

   1. 在**代码签名证书**下，选择**选择现有证书**，然后选择以前导入的证书，或者选择**导入新的代码签名证书**，选择您的文件，然后选择**导入**，以便导入新证书。

   1. 在 **Pathname of code signing certificate on device (设备上代码签名证书的路径名)** 下，输入代码签名证书在设备上的完全限定路径名称。对于大多数设备，您可以将此字段留空。对于 Windows 模拟器以及将证书放在特定文件位置的设备，请在此处输入路径名。
**重要**  
在德州仪器 CC3220 SF-LAUNCHXL 上，如果您的代码签名证书存在于文件系统的根目录中，则不要在文件名前面加上前导斜杠 (**/**)。否则，OTA 更新将在身份验证过程中失败，且产生 `file not found` 错误。

   1. 选择**创建**。

1. 在**文件**下，**选择现有文件**，然后选择**浏览 S3**。此时将显示 Amazon S3 存储桶的列表。选择包含固件更新的存储桶，然后在存储桶中选择固件更新。
**注意**  
Microchip Curi PIC32 osity MZEF 演示项目生成两张默认名称为和的`mplab.production.bin`二进制图像。`mplab.production.ota.bin`如果要上传映像用于 OTA 更新，请使用第二个文件。

1. 在**设备上文件的路径名**下，输入设备上 OTA 作业要将固件映像复制到的位置的完全限定路径名称。此位置因平台而异。
**重要**  
在德州仪器 CC3220 SF-LAUNCHXL 上，由于安全限制，固件镜像路径名必须为。`/sys/mcuflashimg.bin`

1. 在**文件类型**下，输入一个介于 0-255 范围内的整数值。您输入的文件类型将添加到传送到 MCU 的 Job 文档中。MCU firmware/software 开发者对如何处理此值拥有完全所有权。可能的场景包括带有辅助处理器的 MCU，其固件可以独立于主处理器进行更新。当设备收到 OTA 更新任务时，它可以使用文件类型来识别更新适用于哪个处理器。

1. 在 **IAM 角色**下，根据[创建 OTA 更新服务角色](create-service-role.md)中的说明选择一个角色。

1. 选择**下一步**。

1. 为 OTA 更新作业输入 ID 和描述。

1. 在 “**任务类型**” 下，选择 “**您的任务将在部署到所选任务后完成 devices/groups （快照）**”。

1. 为作业选择任何适当的可选配置（**作业执行推出**、**作业中止**、**作业执行超时**和**标签**）。

1. 选择**创建**。<a name="previously-signed"></a>

**选择以前签署的固件映像**

1. 在 **Select and sign your firmware image (选择并签署固件映像)** 下，选择 **Select a previously signed firmware image (选择以前签署的固件映像)**。

1. 在 **Pathname of firmware image on device (设备上固件映像的路径名)** 下，输入设备上 OTA 作业要将固件映像复制到的位置的完全限定路径名称。此位置因平台而异。

1. 在 **Previous code signing job (原有的代码签名作业)** 下，选择 **Select (选择)**，然后选择用来签署用于 OTA 更新的固件映像的上一个代码签名作业。<a name="custom-signed"></a>

**使用自定义的已签署固件映像**

1. 在 **Select and sign your firmware image (选择并签署固件映像)** 下，选择 **Use my custom signed firmware image (使用我的自定义已签署固件映像)**。

1. 在 **Pathname of code signing certificate on device (设备上代码签名证书的路径名)** 下，输入代码签名证书在设备上的完全限定路径名称。对于大多数设备，您可以将此字段留空。对于 Windows 模拟器以及将证书放在特定文件位置的设备，请在此处输入路径名。

1. 在 **Pathname of firmware image on device (设备上固件映像的路径名)** 下，输入设备上 OTA 作业要将固件映像复制到的位置的完全限定路径名称。此位置因平台而异。

1. 在 **Signature (签名)** 下，粘贴 PEM 格式的签名。

1. 在 **Original hash algorithm (原始哈希算法)** 下，选择在创建文件签名时所使用的哈希算法。

1. 在 **Original encryption algorithm (原始加密算法)** 下，选择在创建文件签名时所使用的算法。

1. 在**在 Amazon S3 中选择固件映像**下，选择 Amazon S3 存储桶以及 Amazon S3 存储桶中已签署的固件映像。

指定代码签名信息后，为更新指定 OTA 更新作业类型、服务角色和 ID。

**注意**  
请勿在 OTA 更新的作业 ID 中使用任何个人身份信息。个人身份信息示例包括：  
名称。
IP 地址。
电子邮件地址。
位置。
银行详细信息。
医疗信息。

1. 在 **Job type (作业类型)** 下，选择 **Your job will complete after deploying to the selected devices/groups (snapshot) (您的作业将在部署到所选设备/组后完成 (快照))**。

1. 在 **IAM role for OTA update job (OTA 更新作业的 IAM 角色)** 下，选择 OTA 服务角色。

1. 为作业输入字母数字形式的 ID，然后选择 **Create (创建)**。

任务显示在 AWS IoT 控制台中，状态为 “进行**中**”。

**注意**  
 AWS IoT 控制台不会自动更新作业的状态。刷新浏览器可以查看更新。

将串行 UART 终端连接到设备。您应当看到输出表明设备正在下载更新后的固件。

设备在下载完更新后的固件之后，将重新启动，然后安装固件。在 UART 终端中可以看到所发生的情况。

有关说明如何使用控制台创建 OTA 更新的教程，请参阅[Over-the-air 更新演示应用程序](ota-demo.md)。