使用aws Lambda

时间:2018-06-02 22:24:25

标签: amazon-web-services aws-lambda amazon-kinesis

尝试上传lambda函数,我在其中使用kinesis视频流 我可以在本地使用它,因为当我将它上传到AWS lambda时我可以链接本机库"libKinesisVideoProducerJNI.so"我一直收到错误

WARN / KinesisVideo: Unsatisfied link error. Directly loading native library .so.

22:19:11
WARN / KinesisVideo: Unsatisfied link error. Directly loading native library .dylib.

22:19:11
WARN / KinesisVideo: Unsatisfied link error. Directly loading native library .dll.

22:19:11
WARN / KinesisVideo: Unsatisfied link error. Directly loading native library libKinesisVideoProducerJNI.so.

22:19:11
WARN / KinesisVideo: Unsatisfied link error. Directly loading native library libKinesisVideoProducerJNI.dylib.

22:19:11
WARN / KinesisVideo: Unsatisfied link error. Directly loading native library libKinesisVideoProducerJNI.dll.

22:19:11
ERROR / KinesisVideo: 2018-06-02T22:19Z T1: EXCEPTION: UnsatisfiedLinkError: Unsatisfied link error. Loading native library KinesisVideoProducerJNI failed with java.lang.UnsatisfiedLinkError: no KinesisVideoProducerJNI in java.library.path: no KinesisVideoProducerJNI in java.library.path

22:19:11
com.amazonaws.kinesisvideo.producer.ProducerException: Failed loading native library

如何将本地库添加/链接到aws Lambda?

用java编写的代码,我使用eclipse构建/上传到AWS lambda

1 个答案:

答案 0 :(得分:0)

通过将文件上传到S3 Bucket解决了这个问题, 然后将文件作为S3Object返回并保存到"/tmp/libKinesisVideoProducerJNI.so"然后加载

S3Object libso = awsObject.getObject(s3Client, "bucket", "libKinesisVideoProducerJNI.so");

            File lib = awsObject.save(libso.getObjectContent(), "/tmp/libKinesisVideoProducerJNI.so");

            System.out.println("library file was saved to " + lib.getAbsolutePath());

            System.load(lib.getAbsolutePath());