невозможно загрузить нативную библиотеку Kinesis при использовании AWS Lambda - PullRequest
0 голосов
/ 03 июня 2018

Пытаюсь загрузить лямбда-функцию, в которой я использую потоковое видео 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

1 Ответ

0 голосов
/ 04 июня 2018

решил проблему, загрузив файл в 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());
...