创建 FUOTA 任务并提供固件映像
要更新 LoRaWAN 设备的固件,首先创建一个 FUOTA 任务并提供要用于更新的数字签名固件映像。然后,您可以将设备和多播组添加到任务中并调度 FUOTA 会话。会话开始时,适用于 LoRaWAN 的 AWS IoT Core 设置碎片会话,最终设备收集碎片、重建映像并应用新固件。有关 FUOTA 过程的更多信息,请参阅 FUOTA 过程概述。
下面说明了如何创建 FUOTA 任务并上传要存储在 S3 存储桶中的固件映像或增量映像。
先决条件
在执行 FUOTA 之前,必须对固件映像进行数字签名,这样您的终端设备才可以在应用映像时验证映像的真实性。您可以使用任何第三方工具为固件映像生成数字签名。建议您使用数字签名工具,例如嵌入 ARM mbed GitHub 存储库
使用控制台创建 FUOTA 任务并上传固件映像
要创建 FUOTA 任务并使用控制台上传固件映像,请转到控制台的 FUOTA 任务
-
创建 FUOTA 任务
要创建 FUOTA 任务,请指定任务属性和标签。
-
指定 FUOTA 任务属性
要指定 FUOTA 任务属性,请为 FUOTA 任务输入以下信息。
-
名称:为 FUOTA 任务输入唯一的名称。名称只能包含字母、数字、连字符和下划线。它不能包含空格。
-
说明:您可以为多播组提供可选描述。说明字段最多为 2,048 个字符。
-
RFRegion:为 FUOTA 任务设置频段。频段必须与您用于配置无线设备或多播组的频段相匹配。
-
-
FUOTA 任务的标签
您可以选择提供任何键值对作为的 FUOTA 任务的标签。要继续创建您的映像,选择 Next(下一步)。
-
-
上传固件映像
选择要用来更新添加到 FUOTA 任务设备固件的固件映像文件。固件映像文件存储在 S3 存储桶中。您可以为 适用于 LoRaWAN 的 AWS IoT Core 提供代表您访问固件映像的权限。我们建议您对固件映像进行数字签名,以便在执行固件更新时验证其真实性。
-
选择固件映像文件
您可以将新的固件映像文件上传到 S3 存储桶,也可以选择已上传到 S3 存储桶的现有映像。
注意
固件映像文件不得超过 1 兆字节。固件越大,更新过程完成所需的时间就越长。
-
要使用现有映像,选择 Select an existing firmware image(选择现有的固件映像),选择 Browse S3(浏览 S3),然后选择要使用的固件映像文件。
适用于 LoRaWAN 的 AWS IoT Core 填充 S3 URL,该 URL 是 S3 存储桶中固件映像文件的路径。
s3://
路径的格式为:要在 Amazon Simple Storage Servicebucket_name
/file_name
控制台中查看文件,选择 View(查看)。 -
要上传新的固件映像。
-
选择 Upload a new firmware image(上载新的固件映像),然后上载固件映像。映像文件不得大于 1 兆字节。
-
要创建 S3 存储桶并输入要存储固件映像文件的Bucket 名称,请选择 Create S3 bucket(创建 S3 存储桶)。
-
-
-
要访问存储桶的权限
您可以创建新的服务角色或选择现有角色,让 适用于 LoRaWAN 的 AWS IoT Core 代表您访问 S3 存储桶中的固件映像文件。选择下一步。
要创建新角色,您可以输入角色名称或将其留白以便自动生成随机名称。要查看授予对 S3 存储桶访问权限的策略权限,选择 View policy permissions(查看策略权限)。
有关使用 S3 存储桶存储映像和授予 适用于 LoRaWAN 的 AWS IoT Core 访问权限的更多信息,请参阅 将固件文件上载到 S3 存储桶并添加 IAM 角色。
-
-
审核和创建
要创建 FUOTA 任务,请查看您指定的 FUOTA 任务和配置详细信息,然后选择 Create task(创建任务)。
使用 API 创建 FUOTA 任务并上传固件映像
要使用 API创建 FUOTA 任务并指定固件映像文件,请使用 CreateFuotaTask
API 操作或 create-fuota-task
CLI 命令。您可以将 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 会话。