

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 下載並設定 Edge Manager
<a name="edge-getting-started-step4"></a>

Edge Manager 代理程式是 Edge 裝置的推論引擎。使用代理程式對載入 Edge 裝置的模型進行預測。代理程式也會收集模型指標，並以特定間隔擷取資料。



在本節中，您將使用代理程式設定您的裝置。若要這麼做，請先將發行成品複製並從本機發行儲存貯體簽署根憑證到您的機器。解壓縮版本成品後，將其上傳至 Amazon S3。接下來，定義並儲存代理程式的組態檔。提供了一個範本供您複製並貼上。最後，將發行成品，組態檔案和憑證複製到您的裝置。

1. **下載 SageMaker Edge Manager 代理程式。**

   代理程式會以二進位格式發行，以支援作業系統。此範例會在使用 Linux 作業系統且具有 ARM64 架構的 Jeston Nano 上執行推論。如需支援裝置使用的作業系統和架構有哪些的詳細資訊，請參閱[支援的裝置、晶片架構和系統](neo-supported-devices-edge-devices.md)。

   從美國西部-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` 內的內容，並將其上傳到 Amazon S3 儲存貯體內名為 `agent_demo` 的目錄：

   ```
   !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 Edge Manager 代理程式組態檔案。**

   首先，定義代理程式組態檔案，如下所示：

   ```
   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. **將發行成品，組態檔案和憑證複製到您的裝置。**

   在 Edge 裝置本身上執行以下指示。
**注意**  
您必須先 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
   ```

   您在 Edge 裝置上的 `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
   ```