AWS лямбда-проблема с psycopg2

1

Я пытаюсь импортировать psycopg2 в мою функцию python 3.6 lambda, но я продолжаю работать в сообщении об ошибке 'Unable to import module 'lambda_function': /var/task/psycopg2/_psycopg.cpython-36m-x86_64-linux-gnu.so: ELF file phentsize not the expected size'

Я загружаю zip файл непосредственно в лямбда-функцию через консоль AWS. Я пробовал использовать библиотеку https://github.com/jkehler/awslambda-psycopg2, но он дал мне то же сообщение.

Мне удалось успешно запустить мой сценарий на экземпляре EC2 (Amazon Linux AMI 2018.03.0 (HVM)), и я даже попытался загрузить библиотеку psycopg2 экземпляра EC2 на лямбда, но я все равно продолжаю получать то же сообщение об ошибке,

Любая помощь будет оценена по достоинству.

  • 0
    Какую версию Python вы используете для сборки zip?
Теги:
amazon-web-services
aws-lambda
psycopg2
amazon-ec2

1 ответ

2
Лучший ответ

Я столкнулся с этой проблемой, пытаясь загрузить.zip, содержащий мою Lambda. Проблема для меня заключалась в том, что я сжимал свою Лямбду из одного каталога выше.

В решении была запущена zip-команда в каталоге, содержащем функцию Lambda, в отличие от запуска zip из его родительского каталога.

Например, если ваша лямбда-функция существует в каталоге ~/lambda как lambda_function.py вместе с любыми дополнительными библиотеками (т.е. Многопроцессорными), вы должны заархивировать свой пакет развертывания Lambda, выполнив следующее.

$ cd ~/lambda
$ zip lambda_function.zip lambda_function.py
$ zip -r lambda_function.zip multiprocessing* 

Загрузка результирующего файла.zip должна устранить эту проблему.

  • 1
    Да, я должен был опубликовать решение здесь, но я делал то же самое и пришел к тому же выводу. Архивирование лямбда-функции на один каталог вверх, а затем перемещение их вниз в пользовательском интерфейсе Lambda, по-видимому, является серьезным препятствием для AWS.
  • 1
    Почему сжатие функции таким образом имеет значение?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню