2017-02-16 2 views
0

Я хочу импортировать и использовать пакет набора данных python на AWS Lambda. Пакет набора данных связан с подключением MySQL и выполнением запросов. Но, когда я пытаюсь импортировать его, возникает ошибка.Как использовать пакет, написанный другим языком в AWS Lambda?

«libmysqlclient.so.18: не удается открыть общий объектный файл: Нет такого файла или каталога»

Я думаю, что проблема в том, что пакет клиента MySQL необходимо. Но в машине AWS Lambda нет пакета MySQL.

Как добавить стороннюю программу и как ее связать?

+0

Вы должны принести с собой все зависимости. Таким образом, ваш пакет, который вы импортируете, также должен включать в себя пакет mysql. –

ответ

0

Вы должны установить свои пакеты в папку лямбда:

$ pip install YOUR_MODULE -t YOUR_LAMBDA_FOLDER

А потом, сжимать весь свой каталог в почтовый индекс, чтобы загрузить в вас лямбда.

0

Что вам нужно сделать, это включить двоичные файлы, необходимые для вашего лямбда-пакета.

Вам необходимо использовать pip и создать изолированную среду. Ваш zip, загруженный в lambda, должен включать в себя пакеты python2.7/site-packages (те, которые установлены с помощью pip).

В настоящее время существуют крайние случаи зависимых от os зависимостей. Это сложное решение. В этих случаях вам нужно создать экземпляр ecazon linux ec2 для создания/получения этих зависимостей и упаковки их с помощью лямбда. Как только ваша лямбда упакована, вы можете закрыть экземпляр ec2. Проверить this руководство, если virtualenv недостаточно.