

# 建立 FUOTA 任務並提供韌體映像
<a name="lorawan-fuota-create-task"></a>

若要更新 LoRaWAN 裝置的韌體，請先建立 FUOTA 任務，並提供要用於更新的數位簽署韌體映像。然後，您便可將裝置和多點傳送群組新增至任務，並排定 FUOTA 工作階段。在工作階段啟動時，AWS IoT Core for LoRaWAN 會設定分段工作階段，終端裝置會收集片段、重建映像並套用新韌體。如需 FUOTA 程序的詳細資訊，請參閱 [FUOTA 程序概觀](lorawan-fuota-mc-process.md)。

以下內容會顯示如何建立 FUOTA 任務，以及如何上傳存放在 S3 儲存貯體中的韌體映像或差異映像。

## 必要條件
<a name="lorawan-fuota-task-prereq"></a>

在執行 FUOTA 之前，必須先數位簽署韌體映像，以便終端裝置在套用映像時能驗證映像的真偽。您可以使用任何第三方工具來產生韌體映像的數位簽章。建議您使用數位簽章工具，例如嵌入 [ARM Mbed GitHub 儲存庫](https://github.com/armmbed/mbed-os-example-lorawan-fuota)的工具，其還包括用來產生差異映像以及供裝置使用該映像的工具。

## 使用主控台建立 FUOTA 任務並上傳韌體映像
<a name="lorawan-fuota-task-console"></a>

若要使用主控台建立 FUOTA 任務和上傳韌體映像，請前往 [FUOTA tasks](https://console.aws.amazon.com/iot/home#/wireless/fuotaTasks) (FUOTA 任務) 索引標籤，然後選擇 **Create FUOTA task** (建立 FUOTA 任務)。

1. 

**建立 FUOTA 任務**

   若要建立 FUOTA 任務，請指定任務屬性和標籤。

   1. 

**指定 FUOTA 任務屬性**  
若要指定 FUOTA 任務屬性，請輸入 FUOTA 任務的以下資訊。
      + **名稱**：輸入 FUOTA 任務的唯一名稱。名稱僅可包含字母、數字、連字號和底線。不可含有空格。
      + **描述**：可以選擇為多點傳送群組提供描述。描述欄位最長可達 2,048 個字元。
      + **RFRegion**：設定 FUOTA 任務的頻帶。頻帶必須符合用來佈建無線裝置或多點傳送群組的頻帶。

   1. 

**FUOTA 任務的標籤**  
您可以選擇提供任何鍵值對，作為 FUOTA 任務的**標籤**。請選擇 **Next ** (下一步) 以繼續建立任務。

1. 

**上傳韌體映像**

   選擇要用來更新新增至 FUOTA 任務的裝置韌體的韌體映像檔案。韌體映像檔案會存放在 S3 儲存貯體中。您可以提供 AWS IoT Core for LoRaWAN 許可，讓其代表您存取韌體映像。建議您以數位方式簽署韌體映像，以便在執行韌體更新時驗證其真偽。

   1. 

**選擇韌體映像檔案**  
您可以將新韌體映像檔案上傳至 S3 儲存貯體，或選擇已上傳至 S3 儲存貯體的現有映像。
**注意**  
韌體映像檔案大小不得超過 1 MB。韌體大小越大，完成更新程序所需的時間就越長。
      + 若要使用現有映像，請選擇 **Select an existing firmware image** (選取現有韌體映像)，然後選擇 **Browse S3** (瀏覽 S3)，再選擇要使用的韌體映像檔案。

        AWS IoT Core for LoRaWAN 會填入 S3 URL，其為前往 S3 儲存貯體中韌體映像檔案的路徑。路徑的格式為 `s3://bucket_name/file_name`。若要在 [Amazon Simple Storage Service](https://console.aws.amazon.com/s3/) 主控台中檢視檔案，請選擇 **View** (檢視)。
      + 上傳新韌體映像。

        1. 選擇 **Upload a new firmware image** (上傳新韌體映像)，然後上傳韌體映像。映像檔案大小不得超過 1 MB。

        1. 若要建立 S3 儲存貯體並輸入 **Bucket name** (儲存貯體名稱) 以存放韌體映像檔案，請選擇 **Create S3 bucket** (建立 S3 儲存貯體)。

   1. 

**存取儲存貯體的權限**  
您可以建立新的服務角色或選擇現有角色，讓 AWS IoT Core for LoRaWAN 代表您存取 S3 儲存貯體中的韌體映像檔案。選擇 **Next** (下一步)。

      若要建立新角色，您可以輸入角色名稱，或者保留空白，以便自動產生隨機名稱。若要檢視授予 S3 儲存貯體存取權限的政策許可，請選擇 **View policy permissions** (檢視政策許可)。

   如需使用 S3 儲存貯體來存放映像以及授予 AWS IoT Core for LoRaWAN 存取權限的相關資訊，請參閱 [將韌體檔案上傳至 S3 儲存貯體並新增 IAM 角色](lorawan-upload-firmware-s3bucket.md)。

1. 

**檢閱和建立**

   若要建立 FUOTA 任務，請檢閱指定的 FUOTA 任務和組態詳細資訊，然後選擇 **Create task** (建立任務)。

## 使用 API 建立 FUOTA 任務並上傳韌體映像
<a name="lorawan-fuota-task-api"></a>

若要建立 FUOTA 任務並使用 API 指定韌體映像檔案，請使用 [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateFuotaTask.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateFuotaTask.html) API 操作或 [https://docs.aws.amazon.com/cli/latest/reference/iotwireless/create-fuota-task.html](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/create-fuota-task.html) CLI 命令。您可以提供 `input.json` 檔案作為 `create-fuota-task` 命令的輸入。在使用 API 或 CLI 時，必須已將作為輸入提供的韌體映像檔案上傳至 S3 儲存貯體。您也可以指定 IAM 角色，授予 AWS IoT Core for LoRaWAN 存取 S3 儲存貯體中韌體映像的權限。

```
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 任務的相關資訊。
+ [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateFuotaTask](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateFuotaTask) 或 [https://docs.aws.amazon.com/cli/latest/reference/iotwireless/update-fuota-task.html](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/update-fuota-task.html) 
+ [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetFuotaTask](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetFuotaTask) 或 [https://docs.aws.amazon.com/cli/latest/reference/iotwireless/get-fuota-task.html](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/get-fuota-task.html) 
+ [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListFuotaTasks](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListFuotaTasks) 或 [https://docs.aws.amazon.com/cli/latest/reference/iotwireless/list-fuota-tasks.html](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/list-fuota-tasks.html) 
+ [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_DeleteFuotaTask](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_DeleteFuotaTask) 或 [https://docs.aws.amazon.com/cli/latest/reference/iotwireless/delete-fuota-task.html](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/delete-fuota-task.html) 

## 後續步驟
<a name="lorawan-fuota-next-steps"></a>

您已建立 FUOTA 任務和提供韌體映像，因此可以將裝置新增至任務以更新其韌體。可以將個別裝置或多點傳送群組新增至任務。如需詳細資訊，請參閱[將裝置和多點傳送群組新增至 FUOTA 任務，並排定 FUOTA 工作階段。](lorawan-fuota-add-devices.md)。