Я выполнил все шаги в документации: https://docs.aws.amazon.com/lambda/latest/dg/lambda-python-how-to-create-deployment-package.html
создайте каталог.
Сохраните все исходные файлы Python (файлы.py) на корневом уровне этого каталога.
Установите любые библиотеки, используя pip на корневом уровне каталога.
Заблокировать содержимое каталога project-dir)
Но после того, как я загрузил zip файл в лямбда- функцию, я получил сообщение об ошибке при проверке скрипта
мой код:
import psycopg2
#my code...
Ошибка:
Unable to import module 'myfilemane': No module named 'psycopg2._psycopg'
Я не знаю, где суффикс '_psycopg'
из...
Любая помощь по этому поводу?
Я считаю, что это вызвано тем, что psycopg2
необходимо собрать скомпилированные со статически связанными библиотеками для Linux. Для получения дополнительной информации об этой проблеме обратитесь к разделу Использование psycopg2 с Lambda для обновления Redshift (Python). Другая [ссылка] [1] о проблемах компиляции psycopg2
на OSX.
Есть несколько решений, но в основном это сводится к установке библиотеки на машине Linux и использованию ее в качестве библиотеки Psycopg2 в вашем загрузочном пакете.
Вы используете собственные библиотеки с лямбдой. У нас была подобная проблема, и вот как мы ее решили.
Вращайте машину с AMS с поддержкой AWS, которая запускает вашу настоящую лямбду.
https://docs.aws.amazon.com/lambda/latest/dg/current-supported-versions.html
Поскольку это письмо,
Название AMI: amzn-ami-hvm-2017.03.1.20170812-x86_64-gp2
Полная документация по установке собственных модулей на ваш python lambda.
https://docs.aws.amazon.com/lambda/latest/dg/lambda-python-how-to-create-deployment-package.html
Установите необходимые модули, необходимые для вашей лямбды,
pip install module-name -t/path/to/project-dir
и подготовьте свой пакет для загрузки вместе с собственными модулями в среде lambda ami.
Надеюсь это поможет.