创建 FUOTA 任务并提供固件映像 - AWS IoT Wireless

创建 FUOTA 任务并提供固件映像

要更新 LoRaWAN 设备的固件,首先创建一个 FUOTA 任务并提供要用于更新的数字签名固件映像。然后,您可以将设备和多播组添加到任务中并调度 FUOTA 会话。会话开始时,适用于 LoRaWAN 的 AWS IoT Core 设置碎片会话,最终设备收集碎片、重建映像并应用新固件。有关 FUOTA 过程的更多信息,请参阅 FUOTA 过程概述

下面说明了如何创建 FUOTA 任务并上传要存储在 S3 存储桶中的固件映像或增量映像。

先决条件

在执行 FUOTA 之前,必须对固件映像进行数字签名,这样您的终端设备才可以在应用映像时验证映像的真实性。您可以使用任何第三方工具为固件映像生成数字签名。建议您使用数字签名工具,例如嵌入 ARM mbed GitHub 存储库的工具,其中还包括用于生成增量映像和设备使用该映像的工具。

使用控制台创建 FUOTA 任务并上传固件映像

要创建 FUOTA 任务并使用控制台上传固件映像,请转到控制台的 FUOTA 任务 的选项卡,然后选择 Create FUOTA task(创建 FUOTA 任务)。

  1. 创建 FUOTA 任务

    要创建 FUOTA 任务,请指定任务属性和标签。

    1. 指定 FUOTA 任务属性

      要指定 FUOTA 任务属性,请为 FUOTA 任务输入以下信息。

      • 名称:为 FUOTA 任务输入唯一的名称。名称只能包含字母、数字、连字符和下划线。它不能包含空格。

      • 说明:您可以为多播组提供可选描述。说明字段最多为 2,048 个字符。

      • RFRegion:为 FUOTA 任务设置频段。频段必须与您用于配置无线设备或多播组的频段相匹配。

    2. FUOTA 任务的标签

      您可以选择提供任何键值对作为的 FUOTA 任务的标签。要继续创建您的映像,选择 Next(下一步)。

  2. 上传固件映像

    选择要用来更新添加到 FUOTA 任务设备固件的固件映像文件。固件映像文件存储在 S3 存储桶中。您可以为 适用于 LoRaWAN 的 AWS IoT Core 提供代表您访问固件映像的权限。我们建议您对固件映像进行数字签名,以便在执行固件更新时验证其真实性。

    1. 选择固件映像文件

      您可以将新的固件映像文件上传到 S3 存储桶,也可以选择已上传到 S3 存储桶的现有映像。

      注意

      固件映像文件不得超过 1 兆字节。固件越大,更新过程完成所需的时间就越长。

      • 要使用现有映像,选择 Select an existing firmware image(选择现有的固件映像),选择 Browse S3(浏览 S3),然后选择要使用的固件映像文件。

        适用于 LoRaWAN 的 AWS IoT Core 填充 S3 URL,该 URL 是 S3 存储桶中固件映像文件的路径。s3://bucket_name/file_name 路径的格式为:要在 Amazon Simple Storage Service控制台中查看文件,选择 View(查看)。

      • 要上传新的固件映像。

        1. 选择 Upload a new firmware image(上载新的固件映像),然后上载固件映像。映像文件不得大于 1 兆字节。

        2. 要创建 S3 存储桶并输入要存储固件映像文件的Bucket 名称,请选择 Create S3 bucket(创建 S3 存储桶)。

    2. 要访问存储桶的权限

      您可以创建新的服务角色或选择现有角色,让 适用于 LoRaWAN 的 AWS IoT Core 代表您访问 S3 存储桶中的固件映像文件。选择下一步

      要创建新角色,您可以输入角色名称或将其留白以便自动生成随机名称。要查看授予对 S3 存储桶访问权限的策略权限,选择 View policy permissions(查看策略权限)。

    有关使用 S3 存储桶存储映像和授予 适用于 LoRaWAN 的 AWS IoT Core 访问权限的更多信息,请参阅 将固件文件上载到 S3 存储桶并添加 IAM 角色

  3. 审核和创建

    要创建 FUOTA 任务,请查看您指定的 FUOTA 任务和配置详细信息,然后选择 Create task(创建任务)。

使用 API 创建 FUOTA 任务并上传固件映像

要使用 API创建 FUOTA 任务并指定固件映像文件,请使用 CreateFuotaTask API 操作或 create-fuota-taskCLI 命令。您可以将 input.json 文件作为 create-fuota-task 命令的输入。使用 API 或 CLI 时,作为输入提供的固件映像文件必须已上传到 S3 存储桶。您还可以指定让 适用于 LoRaWAN 的 AWS IoT Core 访问S3 存储桶中固件映像的 IAM 角色。

aws iotwireless create-fuota-task \ --cli-input-json file://input.json

其中:

input.json 的内容

{ "Description": "FUOTA task to update firmware of devices in multicast group.", "FirmwareUpdateImage": "S3:/firmware_bucket/firmware_image "FirmwareUpdateRole": "arn:aws:iam::123456789012:role/service-role/ACF1zBEI" "LoRaWAN": { "RfRegion": "US915" }, "Name": "FUOTA_Task_MC" }

创建 FUOTA 任务后,您可以使用以下 API 操作或 CLI 命令来更新、删除或获取有关 FUOTA 任务的信息。

后续步骤

现在,您已创建了 FUOTA 任务并提供了固件映像,您可以将设备添加到任务中更新固件。您可以将单个设备或多播组添加到任务中。有关更多信息,请参阅将设备和多播组添加到 FUOTA 任务并调度 FUOTA 会话