gist.github.com/carlochess/658a98589709f46dbb3d20502e48556b

трял, пытаясь подключиться к SQL Server, используя функции AWS Lambda в течение длительного времени.

Для этого я пытаюсь использовать любую библиотеку (пробовал с pyodbc, pypyodbc и т. Д.), Упаковывая все в zip-файл и загружая код.

Код практически одинаков для каждой библиотеки, но ошибки разные.

Код:

import pypyodbc

def lambda_handler(event, context):
    conn = pypyodbc.connect('DRIVER={SQL Server};'
                      'SERVER=1.1.1.1;'
                      'DATABASE=dbname;'
                      'UID=user;'
                      'PWD=pwd')

    cur = conn.cursor()

    cur.execute("SELECT * FROM Table")

    item_count = 0

    for row in cur:
        item_count += 1

    print(item_count)

    cur.close()
    conn.close()

    return item_count

Общие проблемы, которые я рассмотрел: - Я добавляю в zip содержимое проекта, а не папку. - Я также добавляю в zip-файл библиотеки, необходимые для запуска кода.

Если я попытаюсь использовать pyodbcПочтовый индекс, который я загружаю, выглядит так:

.idea (dir)
pyodbc (dir)
lambda_function.py
pyodbc.pyd

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

Unable to import module 'lambda_function': No module named pyodbc

После долгих поисков по этому поводу я не смог найти ничего, что могло бы помочь. Только один комментарий, в котором говорилось, что pyodbc необходимо установить в среде linux, чтобы лямбда-функция работала. Но у меня нет этой окружающей среды, также я не знаю, исправит ли это это.

Если я попытаюсь использовать pypyodbcПочтовый индекс, который я загружаю, выглядит так:

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

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

Для этого я попытался установить несколько пакетов python, предложенных другими сообщениями stackoverflow (python-pyodb, unixodbc), но каждый раз мне не удавалось.

Затем был один комментарий, в котором говорилось: «Обязательно поместите собственные библиотеки ODBC в папку lib в вашем пакете развертывания zip»

Может быть, это какая-то помощь? Я не знаю, как получить родные библиотеки ODBC ..

Ох, и последнее. Обе библиотеки работают, если я запускаю их с моей локальной машины. Я могу получить доступ к целевому серверу. Это не удается, если я делаю это из лямбда-функции.

Надеюсь, кто-то может помочь мне и, видимо, весь интернет с этим.

Ответы на вопрос(1)

Ваш ответ на вопрос