

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

# 构建 Amazon Kinesis Video Streams 边缘代理
<a name="gs-build-agent"></a>

**构建 Amazon Kinesis Video Streams 边缘代理**

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 文件，其中包含亚马逊 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_cn/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 命令。亚马逊 Kinesis Video Streams Edge Agent 接受以下参数：    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/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. 要将文件发送到亚马逊 Kinesis Video Streams Edge Agent，请在中 AWS CLI键入以下内容：

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

1. 对亚马逊 Kinesis Video Streams Edge Agent 的每个直播重复上一个步骤。