Deploy the Amazon Kinesis Video Streams Edge Agent AWS IoT Greengrass component on the device
Do the following to deploy the Amazon Kinesis Video Streams Edge Agent AWS IoT Greengrass component on the device:
Deploy the component
-
Download the
tarfile using the provided link.If you completed the Amazon Kinesis Video Streams Edge Agent interest form, check your email for the download link. If you haven't completed the form, complete it here
. -
Verify the checksum.
-
Extract the binaries and jar in your device.
Type:
tar -xvf kvs-edge-agent.tar.gz.After extraction, your folder structure will look like the following:
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/EdgeAgentVersionkvs-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.soNote
The release folder name should be set up in a way that reflects the latest binary release number. For example, a 1.0.0 release will have the folder name set as 1.0.0.
-
Build the dependencies jar.
Note
The jar included with the kvs-edge-agent.tar.gz does not have the dependencies. Use the following steps to build those libraries.
Navigate to the
kvs-edge-agentfolder that containspom.xml.Type
mvn clean package.This will generate a jar file containing the dependencies the Amazon Kinesis Video Streams Edge Agent requires at
kvs-edge-agent/target/libs.jar. -
Place the libs.jar into the folder that contains the component’s artifacts.
Type
mv ./target/libs.jar ./KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/.EdgeAgentVersion/ -
Optional. Configure properties. The Amazon Kinesis Video Streams Edge Agent accepts the following environment variables in AWS IoT Greengrass mode:
Environment Variable Name Required Description AWS_REGIONYes
The Region that is used.
Example: us-west-2
AWS IoT Greengrass Core software automatically sets this value for you. For more information, see the Component environment variable reference topic in the AWS IoT Greengrass Version 2 Developer Guide.
GST_PLUGIN_PATHYes
File path pointing to the folder containing the
gstkvssinkandIngestorPipelineJNIplatform-dependent libraries. This lets GStreamer load these plugins. For more information, see Download, build, and configure the GStreamer element.Example:
/download-location/kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion/LD_LIBRARY_PATHYes
File path pointing to the directory containing the
cproducerandKinesisVideoProducerplatform-dependent libraries.Example:
/download-location/kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion/lib/AWS_KVS_EDGE_CLOUDWATCH_ENABLEDNo
Determines if the Amazon Kinesis Video Streams Edge Agent will post job health metrics onto Amazon CloudWatch.
Accepted values:
TRUE/FALSE(case insensitive). Defaults toFALSEif not provided.Example: FALSE
AWS_KVS_EDGE_LOG_LEVELNo
The level of logging the Amazon Kinesis Video Streams Edge Agent outputs.
Accepted values:
-
OFF
-
ALL
-
FATAL
-
ERROR
-
WARN
-
INFO, default, if not provided
-
DEBUG
-
TRACE
Example:
INFOAWS_KVS_EDGE_LOG_MAX_FILE_SIZENo
Once the log file reaches this size, a rollover will occur.
-
Min: 1
-
Max: 100
-
Default: 20, if not provided
-
Units: Megabytes (MB)
Example: 5
AWS_KVS_EDGE_LOG_OUTPUT_DIRECTORYNo
The file path pointing to the directory where the Amazon Kinesis Video Streams Edge Agent logs are output. Defaults to
./logif not provided.Example:
/file/path/AWS_KVS_EDGE_LOG_ROLLOVER_COUNTNo
The number of rolled-over logs to keep before deleting.
-
Min: 1
-
Max: 100
-
Default: 10, if not provided
Example: 20
AWS_KVS_EDGE_RECORDING_DIRECTORYNo
File path pointing to the directory recorded media will be written to. Defaults to the current directory if not provided.
Example:
/file/path/GREENGRASS_ROOT_DIRECTORYNo
The file path to the AWS IoT Greengrass root directory.
This defaults to
/greengrass/v2/if not provided.Example:
/file/path/GST_DEBUGNo
Specifies the level of GStreamer logs to output. For more information, see the GStreamer documentation
. Example: 0
GST_DEBUG_FILENo
Specifies the output file of the GStreamer debug logs. If unset, debug logs get output to standard error. For more information, see the GStreamer documentation
. Example:
/tmp/gstreamer-logging.logOpen
kvs-edge-agent/KvsEdgeComponent/recipes/recipe.yamland modify the run script to add any of the preceding environment variables.Important
Make sure that the modified run script doesn't contain any tab characters. The AWS IoT Greengrass core software won't be able to read the recipe.
-
-
Deploy the Amazon Kinesis Video Streams Edge Agent AWS IoT Greengrass component.
Type:
sudo /greengrass/v2/bin/greengrass-cli deployment create \ --recipeDir <download location>/kvs-edge-agent/KvsEdgeComponent/recipes/ \ --artifactDir <download location>/kvs-edge-agent/KvsEdgeComponent/artifacts/ \ --merge "aws.kinesisvideo.KvsEdgeComponent=EdgeAgentVersion"For additional information, see the following sections in the AWS IoT Greengrass Version 2 Developer Guide:
-
Send configurations to the application using the AWS CLI.
-
Create a new file,
.example-edge-configuration.jsonPaste the following code into the file. This is a sample configuration that records daily from 9:00:00 AM to 4:59:59 PM (according to the system time on your AWS IoT device). It also uploads the recorded media daily from 7:00:00 PM to 9:59:59 PM.
For more information, see 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 } } } -
Type the following in the AWS CLI to send the file to the Amazon Kinesis Video Streams Edge Agent:
aws kinesisvideo start-edge-configuration-update --cli-input-json "file://example-edge-configuration.json"
-
-
Repeat the previous step for each stream for the Amazon Kinesis Video Streams Edge Agent.