Как загрузить файлы зависимостей в AWS Lambda

Как загрузить файлы зависимостей в AWS Lambda

Я пытаюсь создать функцию AWS Lambda на основе Python и мне нужно импортировать модуль. Я следовал инструкциям вСоздание пакета развертывания (Python)на Амазоне.

Когда я создаю и загружаю ZIP-файл, он включает в себя:

Основное содержимое ZIP-архива, tester2 — моя основная программа на Python

В папке usaddress я поместил зависимости usaddress, хотя я только предполагаю, что именно там им и место.

В любом случае, когда я загружаю файл в Lambda, возвращается ошибка:

{ 
"errorMessage": "Unable to import module 'Tester2'"
}
START RequestId: e9c2cafe-3705-11e6-a289-5366a5578765 Version: $LATEST
Unable to import module 'Tester2': No module named future.builtins
END RequestId: e9c2cafe-3705-11e6-a289-5366a5578765

Файл usaddress/pycrfsuite/_pycrfsuite.pyd импортируется файлом usaddress/pycrfsuite __init_. _pycrfsuite находится в правильном каталоге, но я не знаю, почему он игнорируется.

Как мне это сделать?

решение1

После долгих исследований я понял, что файлы .pyd (это тип файла, который игнорировался) являются скомпилированными файлами cython, и что они компилируются по-разному в системах DOS и UNIX. Поэтому я открыл экземпляр EC2, установил usaddress, библиотеку зависимостей и скопировал файл .so, скомпилированный экземпляром ec2.

В итоге это сработало, так что проблема действительно была в несовместимых системных файлах.

Связанный контент