

# 批量预置 Sidewalk 设备
<a name="sidewalk-bulk-provision-how"></a>

本节介绍如何使用 AWS IoT 控制台和 AWS CLI 将 Sidewalk 设备批量预置到适用于 Amazon Sidewalk 的 AWS IoT Core。

## 批量预置 Sidewalk 设备（控制台）
<a name="provision-bulk-console"></a>

要使用 AWS IoT 控制台添加 Sidewalk 设备，请转到[设备中心的 Sidewalk 选项卡](https://console.aws.amazon.com/iot/home#/wireless/devices?tab=sidewalk)，选择**批量预调配设备**，然后执行以下步骤。

![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/iot-wireless/latest/developerguide/images/sidewalk-bulk-provision.PNG)


1. 

**选择导入方法**

   指定如何将要登记的设备批量导入适用于 Amazon Sidewalk 的 AWS IoT Core。
   + 要使用 SMSN 预置单个设备，请选择**预置单个受工厂支持的设备**。
   + 要通过提供包含设备列表及其 SMS 的 CSV 文件来批量预置设备，请选择**使用 S3 桶**。

1. 

**指定要登记的设备**

   根据您选择登记设备的方法，添加设备信息及其序列号。

   1. 如果您选择**预置单个受工厂支持的设备**，请指定以下信息：

      1. 要登记的每个设备的**名称**。名称在您的 AWS 账户和 AWS 区域中必须是唯一的。

      1. 设备的 Sidewalk 制造序列号（SMSN）位于**输入 SMSN** 字段中。

      1. 一个**目标**，描述将消息从设备路由到其他 AWS 服务的 IoT 规则。

   1. 如果您选择**使用 S3 桶**：

      1. 提供 **S3 桶目标**信息，其中包含 S3 URL 信息。要提供您的 CSV 文件，请选择**浏览 S3**，然后选择要使用的 CSV 文件。

         适用于 Amazon Sidewalk 的 AWS IoT Core 会自动填充 S3 URL，这是指向 S3 桶中 CSV 文件的路径。`s3://bucket_name/file_name` 路径的格式为：要在 [Amazon Simple Storage Service](https://console.aws.amazon.com/s3/)控制台中查看文件，选择 **View**（查看）。

      1. 提供 **S3 预置角色**，该角色允许适用于 Amazon Sidewalk 的 AWS IoT Core 代表您访问 S3 桶中的 CSV 文件。您可以创建新的服务角色或选择现有角色。

         要创建新角色，您可以提供**角色名称**，也可以将其留空以自动生成随机名称。

      1. 提供一个**目标**，描述将消息从设备路由到其他 AWS 服务的 IoT 规则。

1. 开始导入任务

   提供任何可选标签作为名称/值对，然后选择**提交**以开始无线设备导入任务。

## 批量预置 Sidewalk 设备（CLI）
<a name="provision-bulk-api"></a>

要针对适用于 Amazon Sidewalk 的 AWS IoT Core 将 Sidewalk 设备登记到您的账户，请使用以下任一 API 操作，具体取决于您是要单独添加设备，还是通过提供 S3 桶中包含的 CSV 文件来添加设备。
+ 

**使用 S3 CSV 文件批量上传设备**  
要通过提供 S3 桶中的 CSV 文件来批量上传设备，请使用 [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_StartWirelessDeviceImportTask.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_StartWirelessDeviceImportTask.html) API 操作或 [https://docs.aws.amazon.com/cli/latest/reference/iotwireless/start-wireless-device-import-task.html](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/start-wireless-device-import-task.html) AWS CLI 命令。创建任务时，请指定指向 Amazon S3 桶中 CSV 文件的路径，以及授予适用于 Amazon Sidewalk 的 AWS IoT Core 访问 CSV 文件的权限的 IAM 角色。

  任务开始运行后，适用于 Amazon Sidewalk 的 AWS IoT Core 将开始读取 CSV 文件，并将文件中的序列号（SMSN）与从 Amazon Sidewalk 收到的控制日志中的相应信息进行比较。当序列号匹配时，它将开始创建与这些序列号对应的无线设备记录。

  以下命令显示了创建导入任务的示例：

  ```
  aws iotwireless start-wireless-device-import-task \ 
      --cli-input-json "file://task.json"
  ```

  下面显示的是 `task.json` 文件的内容。

  **task.json 的内容**

  ```
  {
      "DestinationName": "Sidewalk_Destination",
      "Sidewalk": {
          "DeviceCreationFile": "s3://import_task_bucket/import_file1", 
          "Role": "arn:aws:iam::123456789012:role/service-role/ACF1zBEI"     
      }
  }
  ```

  运行此命令会返回导入任务的 ID 和 ARN。

  ```
  {    
      "Arn": "arn:aws:iotwireless:us-east-1:123456789012:ImportTask/a1b234c5-67ef-21a2-a1b2-3cd4e5f6789a"
      "Id": "a1b234c5-67ef-21a2-a1b2-3cd4e5f6789a"
  }
  ```
+ 

**使用 SMSN 单独预置设备**  
要使用 SMSN 单独预置设备，请使用 [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_StartSingleWirelessDeviceImportTask.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_StartSingleWirelessDeviceImportTask.html) API 操作或 [https://docs.aws.amazon.com/cli/latest/reference/iotwireless/start-single-wireless-device-import-task.html](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/start-single-wireless-device-import-task.html) AWS CLI 命令。创建任务时，请指定 Sidewalk 目标和要登记的设备的序列号。

  当序列号与从 Amazon Sidewalk 收到的控制日志中的相应信息匹配时，任务将运行并创建无线设备记录。

  以下命令显示了创建导入任务的示例：

  ```
  aws iotwireless start-single-wireless-device-import-task \ 
      --destination-name sidewalk_destination \    
      --sidewalk '{"SidewalkManufacturingSn": "82B83C8B35E856F43CE9C3D59B418CC96B996071016DB1C3BE5901F0F3071A4A"}'
  ```

  运行此命令会返回导入任务的 ID 和 ARN。

  ```
  {
      "Arn": "arn:aws:iotwireless:us-east-1:123456789012:ImportTask/e2a5995e-743b-41f2-a1e4-3ca6a5c5249f"    
      "Id": "e2a5995e-743b-41f2-a1e4-3ca6a5c5249f"
  }
  ```

## 更新或删除导入任务
<a name="provision-bulk-modify"></a>

如果要向导入任务中添加其他设备，可以更新该任务。如果您不再需要该任务或任务失败，也可以删除该任务。有关何时更新或删除任务的信息，请参阅[如何使用 Sidewalk 批量预置](sidewalk-provision-bulk-import.md#provision-bulk-use)。

**警告**  
删除是永久性操作，无法撤消。删除已成功完成的导入任务将不会移除已使用该任务登记的终端设备。

要更新或删除导入任务，请执行以下操作：
+ 

**使用 AWS IoT控制台**  
下列步骤说明如何使用 AWS IoT 控制台更新或删除导入任务。

**要更新导入任务，请执行下列操作：**

  1. 转至 AWS IoT 控制台的 [Sidewalk 设备中心](https://console.aws.amazon.com/iot/home#/wireless/devices?tab=sidewalk)。

  1. 选择要更新的导入任务，然后选择**编辑**。

  1. 提供另一个 S3 文件，其中包含要添加到任务中的设备的序列号，然后选择**提交**。

**要删除导入任务，请执行以下操作：**

  1. 转至 AWS IoT 控制台的 [Sidewalk 设备中心](https://console.aws.amazon.com/iot/home#/wireless/devices?tab=sidewalk)。

  1. 选择要删除的任务，然后选择**删除**。
+ 

**使用 AWS IoT Wireless API 或 AWS CLI**  
使用以下 AWS IoT Wireless API 操作或 CLI 命令更新或删除您的导入任务。
  + 

**[https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateWirelessDeviceImportTask.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateWirelessDeviceImportTask.html) API 或 [https://docs.aws.amazon.com/cli/latest/reference/update-wireless-device-import-task.html](https://docs.aws.amazon.com/cli/latest/reference/update-wireless-device-import-task.html) CLI**  
此 API 操作将 Amazon S3 CSV 文件的内容附加到现有的导入任务。您只能添加以前未包含在任务中的设备的序列号。
  + 

**[https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_DeleteWirelessDeviceImportTask.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_DeleteWirelessDeviceImportTask.html) API 或 [https://docs.aws.amazon.com/cli/latest/reference/delete-wireless-device-import-task.html](https://docs.aws.amazon.com/cli/latest/reference/delete-wireless-device-import-task.html) CLI**  
此 API 操作使用导入任务 ID 删除标记为待删除的导入任务。