

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

# 建置 Amazon Kinesis Video Streams Edge 代理程式
<a name="gs-build-agent"></a>

**建置 Amazon Kinesis Video Streams Edge 代理程式**

1. 使用提供給您的連結下載 `tar` 檔案。

   如果您已完成 Amazon Kinesis Video Streams Edge Agent 興趣表單，請檢查您的電子郵件以取得下載連結。如果您尚未完成表單，請[在此處](https://pages.awscloud.com/GLOBAL-launch-DL-KVS-Edge-2023-learn.html)完成。

1. 驗證檢查總和。

1. 在裝置中解壓縮二進位檔和 jar。

   類型：`tar -xvf kvs-edge-agent.tar.gz`。

   擷取之後，您的資料夾結構會如下所示：

   ```
   kvs-edge-agent/LICENSE
   kvs-edge-agent/THIRD-PARTY-LICENSES
   kvs-edge-agent/pom.xml
   kvs-edge-agent/KvsEdgeComponent
   kvs-edge-agent/KvsEdgeComponent/recipes
   kvs-edge-agent/KvsEdgeComponent/recipes/recipe.yaml
   kvs-edge-agent/KvsEdgeComponent/artifacts
   kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent
   kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/{{EdgeAgentVersion}}
   kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/{{EdgeAgentVersion}}/edge_log_config
   kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/{{EdgeAgentVersion}}/kvs-edge-agent.jar
   kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/{{EdgeAgentVersion}}/libgstkvssink.so
   kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/{{EdgeAgentVersion}}/libIngestorPipelineJNI.so
   kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/{{EdgeAgentVersion}}/lib
   kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/{{EdgeAgentVersion}}/lib/libcproducer.so
   kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/{{EdgeAgentVersion}}/lib/libKinesisVideoProducer.so
   ```
**注意**  
發行資料夾名稱的設定方式應該反映最新的二進位發行編號。例如，1.0.0 版本會將資料夾名稱設定為 1.0.0。

1. 建置相依性 jar。
**注意**  
隨附的 jar `kvs-edge-agent.tar.gz` 沒有相依性。使用下列步驟來建置這些程式庫。

   導覽至包含 的`kvs-edge-agent`資料夾`pom.xml`。

   輸入 `mvn clean package`。

   這會產生 jar 檔案，其中包含 Amazon Kinesis Video Streams Edge Agent 在 所需的相依性`kvs-edge-agent/target/libs.jar`。

1. 將 `libs.jar`放入包含元件成品的資料夾。

   輸入 `mv ./target/libs.jar ./KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/{{EdgeAgentVersion}}/`。

1. 使用先前步驟的值設定環境變數。下表提供變數的說明。    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/kinesisvideostreams/latest/dg/gs-build-agent.html)

1. 清除 GStreamer 快取。類型：

   ```
   rm ~/.cache/gstreamer-1.0/registry.{{your-os-architecture}}.bin
   ```

   如需詳細資訊，請參閱 [GStreamer 登錄檔文件](https://gstreamer.freedesktop.org/documentation/gstreamer/gstregistry.html?gi-language=c)。

1. 準備並執行 java 命令。Amazon Kinesis Video Streams Edge 代理程式接受下列引數：    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/kinesisvideostreams/latest/dg/gs-build-agent.html)

   若要設定這些命令，請將 `-D{{java-property-name}}={{value}}`新增至用來執行 jar 的 java 命令。

   例如：

   ```
   java -Djava.library.path=/{{download-location}}/kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/{{EdgeAgentVersion}} \
     --add-opens java.base/jdk.internal.misc=ALL-UNNAMED \
     -Dio.netty.tryReflectionSetAccessible=true \
     -cp kvs-edge-agent.jar:libs.jar \
     com.amazonaws.kinesisvideo.edge.controller.ControllerApp
   ```
**重要**  
從與 相同的目錄執行上述 java 命令`/{{download-location}}/kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/{{EdgeAgentVersion}}`。

1. 使用 將組態傳送至應用程式 AWS CLI。

   1. 建立新的檔案 `{{example-edge-configuration}}.json`。

      將以下程式碼貼到檔案。這是每日上午 9：00：00 至下午 4：59：59 記錄的範例組態 （根據您 AWS IoT 裝置上的系統時間）。它也會每天從下午 7：00：00 到晚上 9：59：59 上傳錄製的媒體。

      如需詳細資訊，請參閱[StartEdgeConfigurationUpdate](API_StartEdgeConfigurationUpdate.md)。

      ```
      {
          "StreamARN": "arn:aws:kinesisvideo:{{your-region}}:{{your-account-id}}:stream/{{your-stream}}/{{0123456789012}}",
          "EdgeConfig": {
              "HubDeviceArn": "arn:aws:iot:{{your-region}}:{{your-account-id}}:thing/{{kvs-edge-agent-demo}}",
              "RecorderConfig": {
                  "MediaSourceConfig": {
                      "MediaUriSecretArn": "arn:aws:secretsmanager:{{your-region}}:{{your-account-id}}:secret:{{your-secret}}-{{dRbHJQ}}",
                      "MediaUriType": "RTSP_URI"
                  },
                  "ScheduleConfig": {
                      "ScheduleExpression": "0 0 9,10,11,12,13,14,15,16 ? * * *",
                      "DurationInSeconds": 3599
                  }
              },
              "UploaderConfig": {
                  "ScheduleConfig": {
                      "ScheduleExpression": "0 0 19,20,21 ? * * *",
                      "DurationInSeconds": 3599
                  }
              },
              "DeletionConfig": {
                  "EdgeRetentionInHours": 15,
                  "LocalSizeConfig": {
                    "MaxLocalMediaSizeInMB": 2800,
                    "StrategyOnFullSize": "DELETE_OLDEST_MEDIA"
                  },
                  "DeleteAfterUpload": true
              }
          }
      }
      ```

   1. 若要將檔案傳送至 Amazon Kinesis Video Streams Edge 代理程式，請在 中輸入下列項目 AWS CLI：

      ```
      aws kinesisvideo start-edge-configuration-update --cli-input-json "file://{{example-edge-configuration}}.json"
      ```

1. 針對 Amazon Kinesis Video Streams Edge Agent 的每個串流重複上述步驟。