2016-02-17 2 views
4

мое приложение выполняет некоторый http-запрос и вставляет результат в SQL-сервер db на ежедневной основе. sql-сервер находится на службе amdson rds, я использую настройки по умолчанию-vpc.Python - SQL Server AWS Lambda Integration

Когда я пытаюсь использовать его в AWS лямбда (упаковано, как это определено в документации AWS-лямбда), она дает следующие ошибки:

module initialization error: 'ODBC Library is not found. Is LD_LIBRARY_PATH set?'

Я использую pypyodbc как модуль питона MSSQL.

Нужно ли настраивать библиотеку odbc вручную?

Прикрепленный роль включает в себя policiy:

  • AWSLambdaVPCAccessExecutionRole

Edit: я пытался использовать ceodbc и pyodbc, не может найти модуль "" ошибка поднятый. (установлен в virtualenv с файлом ceodbc whl, pyodbc with pip) ПРИМЕЧАНИЕ. У этих двух файлов есть .pyd расширения файлов на корневом уровне, так как они также находятся в папке сайтов-пакетов. Я думаю, что amazon lambda не включает файл pyd во время выполнения.

Edit2: последовали за этими шагами, получили такую ​​же ошибку. https://docs.aws.amazon.com/lambda/latest/dg/vpc-rds-create-rds-mysql.html

ответ

0

Это не проблема VPC, а проблема пакета, которая не находится в лямбда.

В питоне, лучший способ это установить свои пакеты в папке лямбды перед сжатием все в .zip: (. И я не знаю, но pypyodbcpymsql работает для меня) $ pip install YOUR_MODULE -t YOUR_LAMBDA_FOLDER

Смежные вопросы