尝试上传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
答案 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());