第 8 步:构建并运行亚马逊 Kinesis Video Streams Edge 代理 - Amazon Kinesis Video Streams
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

第 8 步:构建并运行亚马逊 Kinesis Video Streams Edge 代理

构建并运行亚马逊 Kinesis Video Streams 边缘代理
  1. 下载这个tar使用提供给您的链接提交文件。

    如果你填写了 Amazon Kinesis Video Streams Edge Agent 的兴趣表,请查看电子邮件中的下载链接。如果您还没有填写表格,请填写这里

  2. 验证校验和。

  3. 提取设备中的二进制文件和 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。

  4. 构建依赖关系 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

  5. 放置libs.jar进入包含组件构件的文件夹。

    键入 mv ./target/libs.jar ./KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion/

  6. 使用前面步骤中的值设置环境变量。下表提供了变量的描述。

    环境变量名称 必填 描述

    AWS_REGION

    使用的区域。

    示例:us-west-2

    AWS_IOT_CA_CERT

    用于通过 TLS 与后端服务建立信任的 CA 证书的文件路径。

    示例: /file/path/to/AmazonRootCA1.pem

    AWS_IOT_CORE_CERT

    X.509 证书的文件路径。

    示例: /file/path/to/certificateID-certificate.pem.crt

    AWS_IOT_CORE_CREDENTIAL_ENDPOINT

    这个Amazon IoT Core凭证端点提供商您的终端节点Amazon账户。

    示例: credential-account-specific-prefix.credentials.iot.aws-region.amazonaws.com

    AWS_IOT_CORE_DATA_ATS_ENDPOINT

    这个Amazon IoT Core数据平面端点为了你Amazon账户。

    示例: data-account-specific-prefix.iot.aws-region.amazonaws.com

    AWS_IOT_CORE_PRIVATE_KEY

    公钥/私钥对中使用的私钥的文件路径。有关更多信息,请参见中的密钥管理Amazon IoT

    示例: /file/path/to/certificateID-private.pem.key

    AWS_IOT_CORE_ROLE_ALIAS

    指向的角色别名的名称Amazon连接时要使用的 IAM 角色Amazon IoT Core。

    示例: kvs-edge-role-alias

    AWS_IOT_CORE_THING_NAME

    的名字Amazon IoT应用程序正在运行的东西。

    示例: my-edge-device-thing

    GST_PLUGIN_PATH

    指向包含... 的文件夹的文件路径gstkvssinkIngestorPipelineJNI依赖平台的库。让 gStreamer 加载这些插件。有关更多信息,请参见下载、构建和配置 gStreamer 元素

    示例: /download-location/kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion/

    LD_LIBRARY_PATH

    指向包含的目录的文件路径cproducerKinesisVideoProducer依赖平台的库。

    示例: /download-location/kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion/lib/

    AWS_KVS_EDGE_CLOUDWATCH_ENABLED

    确定亚马逊 Kinesis Video Streams Edge Agent 是否会将工作健康指标发布到Amazon CloudWatch。

    可接受的值:TRUE/FALSE(不区分大小写)。默认为FALSE如果未提供。

    示例:假的

    AWS_KVS_EDGE_LOG_LEVEL

    记录亚马逊 Kinesis Video Streams Edge Agent 输出的级别。

    可接受的值:

    • OFF

    • ALL

    • 致命

    • ERROR (错误)

    • WARN

    • INFO,如果未提供,则默认

    • DEBUG

    • 跟踪

    示例: INFO

    AWS_KVS_EDGE_LOG_MAX_FILE_SIZE

    一旦日志文件达到这个大小,就会发生翻转。

    • 最小值:0

    • 马克斯:10000

    • 默认:20,如果未提供

    • 单位:兆字节 (MB)

    示例:5

    AWS_KVS_EDGE_LOG_OUTPUT_DIRECTORY

    指向输出 Amazon Kinesis Video Streams Edge Agent 日志的目录的文件路径。默认为./log如果未提供。

    示例: /file/path/

    AWS_KVS_EDGE_LOG_ROLLOVER_COUNT

    删除前要保留的滚动日志的数量。

    • 最小值:1

    • 马克斯:100

    • 默认:10,如果未提供

    示例:20

    AWS_KVS_EDGE_RECORDING_DIRECTORY

    指向录制媒体的目录的文件路径将被写入。如果未提供,则默认为当前目录。

    示例: /file/path/

    GST_DEBUG

    指定要输出的 GStreamer 日志的级别。有关更多信息,请参阅gStreamer 文档

    示例:0

    GST_DEBUG_FILE

    指定 GStreamer 调试日志的输出文件。如果未设置,则调试日志将输出为标准错误。有关更多信息,请参阅gStreamer 文档

    示例: /tmp/gstreamer-logging.log

  7. 清除 gStreamer 缓存。类型:

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

    有关更多信息,请参阅gStreamer 注册表文档

  8. 准备并运行 java 命令。亚马逊 Kinesis Video Streams Edge Agent 接受以下参数:

    Java 属性名称 必填 描述

    java.library.path

    指向包含的文件夹的文件路径gstkvssinkIngestorPipelineJNI依赖库。如果未提供,亚马逊 Kinesis Video Streams Edge Agent 将在当前目录中搜索他们。

    重要

    如果无法找到这些文件,亚马逊 Kinesis Video Streams Edge Agent 将无法正常运行。

    示例: /file/path/

    要设置这些,请添加-Djava-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

  9. 使用将配置发送到应用程序Amazon CLI。

    1. 创建一个新文件,example-edge-configuration.json

      将以下代码粘贴到该文件中。这是配置示例,每天从上午 9:00:00 到下午 4:59:59(根据您的系统时间)进行记录Amazon IoT设备)。它还会在每天晚上 7:00:00 到晚上 9:59:59 上传录制的媒体。

      有关更多信息,请参阅StartEdgeConfigurationUpdate

      { "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 } } }
    2. 要将文件发送到 Amazon Kinesis Video Streams Edge Agent,请在Amazon CLI:

      aws kinesisvideo start-edge-configuration-update --cli-input-json "file://example-edge-configuration.json"
  10. 对亚马逊 Kinesis Video Streams Edge Agent 的每个直播重复前面的步骤。