2016-03-17 2 views
12

У кого-нибудь есть полностью скомпилированная версия панд, совместимая с AWS Lambda?Pandas & AWS Lambda

После нескольких часов поиска я не могу найти то, что ищу, и документации по этому вопросу не существует.

Мне нужен доступ к пакету в лямбда-функции, но я не был уверен, что пакет правильно компилируется для использования в функции лямбда.

Вместо компиляции можно ли предоставить воспроизводимые шаги для создания двоичных файлов?

К сожалению, я не смог успешно воспроизвести какие-либо руководства по предметам, так как они в основном объединяют панды с scipy, которые мне не нужны, и добавляет дополнительный уровень нагрузки.

+0

Проверьте ответ на http://stackoverflow.com/a/43766512/345606 за советом, включая пакеты Python, как панды, которые скомпилированный код. – Kevin

ответ

7

После некоторых мастерить вокруг и Лота прибегая к помощи я был в состоянии сделать все работы и установки репо, которые могут просто быть клонированы в будущем.

Основные тезисы:

  1. Все статические пакеты должны быть составлены на ec2 амазонки Linux экземпляра
  2. код питон должен загрузить библиотеки в Lib/папку перед выполнением.

Github репо: https://github.com/moesy/AWS-Lambda-ML-Microservice-Skeleton

+0

@Moe пожалуйста [отметьте один из ответов как принято] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) – peralmq

+0

@dsvensson, пожалуйста, взгляните на второй repo он создает двоичные файлы из источника. – Moe

13

Я считаю, что вы сможете использовать последнюю версию панды (или, вероятно, ту, что на вашем компьютере). Вы можете создать пакет лямбды с пандами сам, как это,

  1. Сначала найдите, где пакет панды установлен на вашем компьютере, то есть открыть питон терминал и введите

    import pandas 
    pandas.__file__ 
    

    Это должно напечатать что-то вроде '/usr/local/lib/python3.4/site-packages/pandas/__init__.py'

  2. Теперь скопируйте папку pandas из этого места (в данном случае '/usr/local/lib/python3.4/site-packages/pandas) и поместите его в свой репозиторий.
  3. Пакет ваш Lambda код с пандами, как это:

    zip -r9 my_lambda.zip pandas/ 
    zip -9 my_lambda.zip my_lambda_function.py 
    

Вы также можете развернуть свой код на S3 и сделать Lambda использовать код из S3.

aws s3 cp my_lambda.zip s3://dev-code//projectx/lambda_packages/ 

Here's the repo that will get you started