amazon-web-services - 使用 aws Lambda 时无法加载 kinesis 本机库
问题描述
我正在尝试上传 lambda 函数,其中我使用 kinesis 视频流我可以在本地使用它,因为"libKinesisVideoProducerJNI.so"
当我将它上传到 AWS lambda 时我可以链接本机库我不断收到错误
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
解决方案
通过将文件上传到 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());
推荐阅读
- python - Numpy - 将 3D 数组(100,100,3)与 2D 数组(100,100)相乘
- javascript - 编写 reactJS 网页标记的所有选项有哪些?
- python - Django,使用字典列表的响应
- react-native - 我正在尝试安装 axios 但发生了这样的错误
- javascript - odoo 11 不加载 javascript 代码
- reactjs - 从 material-ui 日期选择器中删除年份
- android - 在 kotlin 的另一个线程中运行 Room Insert 的推荐方法
- javascript - Socket.on 内的 socket.on
- websocket - 带有 JWT 身份验证的 NGINX 反向代理 WebSockets 没有 Access-Control-Allow-Origin 标头
- bbc-microbit - micro:bit 上的按钮 B 总是被按下