Невозможно импортировать модуль 'lambda_function': нет модуля с именем 'cx_Oracle' - PullRequest
1 голос
/ 11 июля 2019

Я пытаюсь создать функцию AWS Lambda в Python для подключения к базе данных Oracle (пока только тестовое соединение). Но у меня нет успеха, чтобы завершить поток. Каждый раз, когда я вижу это сообщение об ошибке:


    {
      "errorMessage": "Unable to import module 'lambda_function': No module named 'cx_Oracle'",
      "errorType": "Runtime.ImportModuleError"
    }

Я создал virtualenv в Ubuntu WSL, установил Oracle InstantClient в папку lib, установил cx_oracle с помощью pip в папку sites-package и создал мою лямбда-функцию в той же папке, заархивировал все файлы, загрузил на мой S3 и положить в бег.

Кто-нибудь может мне помочь?

Мой код:

    import cx_Oracle

    # Yeah, you need this
    with open('/tmp/HOSTALIASES', 'w') as f: f.write(f'{os.uname()[1]} localhost\n')

    # Oracle away!
    def lambda_handler(event, context):
        return str(
            cx_Oracle.connect(
                'username',
                'password',
                cx_Oracle.makedsn(
                    'rds.amazonaws.com', 1521, 'SOME_SID',
                )
            ).cursor().execute('SELECT 42 FROM DUAL').fetchone()
        )

Папка с моими сайтами-пакетами: folder

** Мой лямбда-конфиг: ** lambda

1 Ответ

0 голосов
/ 11 июля 2019

для дополнительного пути python3.7 в лямбде используйте переменную окружения PYTHONPATH и сохраните свои библиотеки в этой папке.

enter image description here

enter image description here

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