aws лямбда-питон исключение - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь запустить код Python в AWS-лямбде, и я получил исключение из AWS-лямбды, когда я запускаю тест.

Я не понимаю, что это за исключение. это первый раз для меня.

 {
  "errorMessage": "The 'psycopg2>=2.5' distribution was not found and is required by the application",
  "errorType": "DistributionNotFound",
  "stackTrace": [
    [
      "/var/task/redshift_test.py",
      22,
      "handler",
      "print_meta_info('test_schema')"
    ],
}

вот мой список библиотеки python3.6 для кода запуска.

.
├── redshift_sqlalchemy
├── sqlalchemy
├── SQLAlchemy-1.2.8.egg-info
├── sqlalchemy_redshift
└── sqlalchemy_redshift-0.7.1.dist-info

>> when I try pip freeze
psycopg2==2.7.5
SQLAlchemy==1.2.8
sqlalchemy-redshift==0.7.1

1 Ответ

0 голосов
/ 26 июня 2018

Psycopg2 не является модулем, доступным при выполнении функций Lambda в AWS. Фактически, Lambda не включает ЛЮБЫЕ библиотеки в свой AMI для связи с базой данных PostGreSQL. Чтобы запустить библиотеку psycopg2, вам нужно будет скомпилировать код библиотеки C psycopg2, сослаться на него в файле python, сжать его с помощью функции лямбда-выражения и напрямую загрузить в S3 или Lambda.

К счастью, какая-то добрая душа в интернете уже сделала это :) Вы можете найти его код здесь https://github.com/jkehler/awslambda-psycopg2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...