#python #aws-lambda #amazon-rds
#python #aws-lambda #amazon-rds
Вопрос:
Я пытаюсь подключиться к экземпляру AWS RDS SQL Server для запроса таблицы из AWS Lambda с помощью скрипта python. Но я не вижу никакого API AWS, поэтому, когда я пытаюсь использовать «import pyodbc», я вижу приведенную ниже ошибку.
Невозможно импортировать модуль ‘lambda_function’: нет модуля с именем ‘pyodbc’
Подключение:
cnxn = pyodbc.connect("Driver={SQL Server};"
"Server=data-migration-source-instance.asasasas.eu-east-1.rds.amazonaws.com;"
"Database=sourcedb;"
"uid=source;pwd=source1234")
Есть какие-либо указания по тому, как запрашивать RDS SQL Server?
Ответ №1:
Ошибка, которую вы получаете, означает, что в лямбде нет pyodbc
модуля.
Вы должны прочитать об управлении зависимостями в AWS Lambda. В основном существует две стратегии включения зависимостей в ваше развертывание — слои Lambda или zip с пакетом развертывания.
Если вы используете бессерверную платформу, Serverless-python-requirements
это отличный пакет для управления вашими зависимостями, позволяющий выбирать стратегию управления зависимостями с минимальными изменениями в вашем приложении.
Ответ №2:
вам необходимо загрузить зависимости лямбды вместе с кодом. Если вы развернете свою лямбду вручную (т. Е. Создадите zip-файл / прямо из консоли), вам нужно будет подключить pyodb
библиотеку. (Более подробная информация доступна здесь: https://docs.aws.amazon.com/lambda/latest/dg/python-package.html#python-package-dependencies ).
Если вы используете любой другой инструмент развертывания (бессерверный, SAM, chalice), это будет намного проще: https://www.serverless.com/plugins/serverless-python-requirements , https://aws.github.io/chalice/topics/packaging.html#rd-party-packages , https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-using-build.html