

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

# 下载并设置 Edge Manager
<a name="edge-getting-started-step4"></a>

Edge Manager 代理是边缘设备的推理引擎。使用代理对加载到边缘设备上的模型进行预测。代理还会收集模型指标，并按特定时间间隔捕获数据。



在本部分中，您将使用代理设置您的设备。为此，请先将发布构件和签名根证书从发布存储桶本地复制到您的计算机。解压缩发布构件后，将其上传到 Amazon S3。接下来，定义并保存代理的配置文件。提供了一个模板供您复制和粘贴。最后，将发布构件、配置文件和凭证复制到您的设备。

1. **下载边 SageMaker 缘管理器代理。**

   对于受支持的操作系统，该代理以二进制格式发布。此示例在使用 Linux 操作系统并具有架构的 Jetson Nano 上运行推理。 ARM64 有关受支持设备使用的操作系统和架构的更多信息，请参阅[支持的设备、芯片架构和系统](neo-supported-devices-edge-devices.md)。

   从 us-west-2 区域的 SageMaker Edge Manager 版本桶中获取最新版本的二进制文件。

   ```
   !aws s3 ls s3://sagemaker-edge-release-store-us-west-2-linux-armv8/Releases/ | sort -r
   ```

   这会返回按版本排序的发布构件。

   ```
                              PRE 1.20210512.96da6cc/
                              PRE 1.20210305.a4bc999/
                              PRE 1.20201218.81f481f/
                              PRE 1.20201207.02d0e97/
   ```

   版本有以下格式：`<MAJOR_VERSION>.<YYYY-MM-DD>.<SHA-7>`。它由三个部分组成：
   + `<MAJOR_VERSION>`：发布版本。发布版本当前设置为 `1`。
   + `<YYYY-MM-DD>`：构件发布的时间戳。
   + <SHA-7>：构建发布的存储库提交 ID。

   将压缩的 TAR 文件复制到本地或直接复制到设备上。以下示例说明了如何在发布本文档时复制最新的发布构件。

   ```
   !aws s3 cp s3://sagemaker-edge-release-store-us-west-2-linux-x64/Releases/1.20201218.81f481f/1.20201218.81f481f.tgz ./
   ```

   获得构件后，对压缩的 TAR 文件进行解压缩。以下操作解压缩 TAR 文件并将其存储在名为 `agent_demo` 的目录中：

   ```
   !mkdir agent_demo
   !tar -xvzf 1.20201218.81f481f.tgz -C ./agent_demo
   ```

   将代理发布构件上传到 Amazon S3 存储桶。以下代码示例会复制 `agent_demo` 中的内容，然后将其上传到名为 `agent_demo` 的 Amazon S3 存储桶中：

   ```
   !aws s3 cp --recursive ./agent_demo s3://{bucket}/agent_demo
   ```

   您还需要发布存储桶中的签名根证书：

   ```
   !aws s3 cp s3://sagemaker-edge-release-store-us-west-2-linux-x64/Certificates/us-west-2/us-west-2.pem ./
   ```

   将签名根证书上传到 Amazon S3 存储桶：

   ```
   !aws s3 cp us-west-2.pem s3://{bucket}/authorization-files/
   ```

1. **定义边 SageMaker 缘管理器代理配置文件。**

   首先，按如下方式定义代理配置文件：

   ```
   sagemaker_edge_config = {
       "sagemaker_edge_core_device_name": {{"device_name"}},
       "sagemaker_edge_core_device_fleet_name": {{"device_fleet_name"}},
       "sagemaker_edge_core_capture_data_buffer_size": 30,
       "sagemaker_edge_core_capture_data_push_period_seconds": 4,
       "sagemaker_edge_core_folder_prefix": "demo_capture",
       "sagemaker_edge_core_region": "us-west-2",
       "sagemaker_edge_core_root_certs_path": "/agent_demo/certificates",
       "sagemaker_edge_provider_aws_ca_cert_file": "/agent_demo/iot-credentials/AmazonRootCA1.pem",
       "sagemaker_edge_provider_aws_cert_file": "/agent_demo/iot-credentials/device.pem.crt",
       "sagemaker_edge_provider_aws_cert_pk_file": "/agent_demo/iot-credentials/private.pem.key",
       "sagemaker_edge_provider_aws_iot_cred_endpoint": {{"endpoint"}},
       "sagemaker_edge_provider_provider": "Aws",
       "sagemaker_edge_provider_s3_bucket_name": bucket,
       "sagemaker_edge_core_capture_data_destination": "Cloud"
   }
   ```

   替换以下内容：
   + `"device_name"`，使用您的设备名称（此字符串在前面的步骤中存储在名为 `device_name` 的变量中）替换。
   + `"device_fleet_name`"，使用设备队列的名称（此字符串在前面的步骤中存储在名为 `device_fleet_name` 的变量中）替换。
   + `"endpoint"`使用凭证提供商的 AWS 账户专用端点（此字符串存储在前面的步骤中名`endpoint`为的变量中）。

   接下来，将其保存为 JSON 文件：

   ```
   edge_config_file = open("sagemaker_edge_config.json", "w")
   json.dump(sagemaker_edge_config, edge_config_file, indent = 6)
   edge_config_file.close()
   ```

   将配置文件上传到您的 Amazon S3 存储桶：

   ```
   !aws s3 cp sagemaker_edge_config.json s3://{bucket}/
   ```

1. **将发布构件、配置文件和凭证复制到设备。**

   在边缘设备自身上执行以下说明。
**注意**  
您必须先在边缘设备 AWS CLI 上安装 Python 适用于 Python (Boto3) 的 AWS SDK、和。

   在您的设备上打开终端。创建一个用于存储发布构件、您的凭证和配置文件的文件夹。

   ```
   mkdir agent_demo
   cd agent_demo
   ```

   将存储在 Amazon S3 存储桶中的发布构件的内容复制到您的设备：

   ```
   # Copy release artifacts 
   aws s3 cp s3://{{<bucket-name>}}/{{agent_demo}}/ ./ --recursive
   ```

   （发布构件的内容存储在上一步中名为 `agent_demo` 的目录中）。用 Amazon S3 存储桶的名称和发布构件的文件路径分别替换 `<bucket-name>` 和 `agent_demo`。

   进入 `/bin` 目录并使二进制文件可执行：

   ```
   cd bin
   
   chmod +x sagemaker_edge_agent_binary
   chmod +x sagemaker_edge_agent_client_example
   
   cd agent_demo
   ```

   创建一个目录来存储您的 AWS IoT 证书，并将您的证书从 Amazon S3 存储桶复制到边缘设备（使用您在变量中定义的相同内容`bucket`：

   ```
   mkdir iot-credentials
   cd iot-credentials
   
   aws s3 cp s3://{{<bucket-name>}}/authorization-files/AmazonRootCA1.pem ./
   aws s3 cp s3://{{<bucket-name>}}/authorization-files/device.pem.crt ./
   aws s3 cp s3://{{<bucket-name>}}/authorization-files/private.pem.key ./
   
   cd ../
   ```

   创建一个目录来存储模型签名根证书：

   ```
   mkdir certificates
   
   cd certificates
   
   aws s3 cp s3://{{<bucket-name>}}/authorization-files/us-west-2.pem ./
   
   cd agent_demo
   ```

   将您的配置文件复制到您的设备上：

   ```
   #Download config file from S3
   aws s3 cp s3://{{<bucket-name>}}/sagemaker_edge_config.json ./
   
   cd agent_demo
   ```

   您边缘设备上的 `agent_demo` 目录应类似于以下内容：

   ```
   ├──agent_demo
   |    ├── bin
   |        ├── sagemaker_edge_agent_binary
   |        └── sagemaker_edge_agent_client_example
   |    ├── sagemaker_edge_config.json
   |    ├── certificates
   |        └──us-west-2.pem
   |    ├── iot-credentials
   |        ├── AmazonRootCA1.pem
   |        ├── device.pem.crt
   |        └── private.pem.key
   |    ├── docs
   |        ├── api
   |        └── examples
   |    ├── ATTRIBUTIONS.txt
   |    ├── LICENSE.txt  
   |    └── RELEASE_NOTES.md
   ```