AWS Python Lambda с Oracle

1

Я пытаюсь подключиться к Oracle db из AWS Lambda с помощью python. Мне удалось пакет cx_Oracle, но среда не находит зависимости.

Я закрепил содержимое, содержащее cx_Oracle.so и cx_Oracle-5.2.1-py2.7.egg-info (созданный на 64-битном AWX Linux). Я также добавил файлы из instantclient-basic-linux.x64-12.1.0.2.0.zip в local/lib в этот zip файл.

Ошибка, которую я получаю,

import cx_Oracle

ImportError: libaio.so.1: cannot open shared object file: No such file or directory

Я динамически изменяю переменные среды в python следующим образом:

oracledir = os.path.join(os.getcwd(), 'local', 'lib')
libdir = os.environ['LD_LIBRARY_PATH'] + ":" + os.path.join(os.getcwd(), 'local', 'lib')

command = 'LD_LIBRARY_PATH={} ORACLE_HOME={} python OracleWorker.py "{}"'.format(libdir, oracledir, args)
subprocess.call(command, shell=True)

OracleWorker.py начинается с import cx_Oracle

  • 0
    Не стоит задавать тот же вопрос - отредактируйте предыдущий вопрос
  • 1
    Предыдущий вопрос касался учебника, который был против политики. Ответом, который вы предоставили, было общее учебное пособие по aws, которое не помогло в этом случае. Вопрос выше детализирует точные шаги, которые я предпринял, и результаты, которые я получаю. Пожалуйста, еще раз обратите внимание, что я следовал этому руководству в качестве первого шага безрезультатно.
Теги:
amazon-web-services
lambda

1 ответ

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

Решенный. Добавлены все зависимости путем запуска   ldd cx_Oracle.so| grep "=> /" | awk '{print $3}' | xargs -I '{}' cp -v '{}' /destination Добавлены все файлы в папку lib в lambda zip

  • 0
    Привет @ Томас, я получаю эту ошибку "" "DPI-1047: 64-битная клиентская библиотека Oracle не может быть загружена: \" libclntsh.so: не удается открыть общий объектный файл: такой файл или каталог \ "" "я не поставил все файлы в InstantClient_12_12 в папку lib и index.py вместе с cx_Oracle на том же уровне, что и lib. Не могли бы вы поделиться своим zip или структурой каталогов. Спасибо

Ещё вопросы

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