Função AWS Lambda para conectar-se ao SQL Server com Python

Há muito tempo que estou tentando conectar-me a um SQL Server usando as funções do AWS Lambda.

Para fazer isso, estou tentando usar qualquer biblioteca (tentei com pyodbc, pypyodbc, etc), empacotando tudo em um arquivo zip e fazendo o upload do código.

O código é praticamente o mesmo para todas as bibliotecas, mas os erros são diferentes.

O código:

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

Problemas comuns que eu abordei: - Estou adicionando ao zip o conteúdo do projeto, não a pasta. - Também estou adicionando ao arquivo zip as bibliotecas necessárias para a execução do código.

Se eu tentar usar pyodbc, o zip que estou enviando fica assim:

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

O erro que recebo:

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

Depois de pesquisar bastante sobre isso, não consegui encontrar nada que ajude. Apenas um comentário disse que o pyodbc precisava ser instalado em um ambiente linux para que a função lambda funcionasse. Mas eu não tenho esse ambiente disponível, também não sei se isso vai corrigir isso.

Se eu tentar usar pypyodbc, o zip que estou enviando fica assim:

O erro que recebo:

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

Para este, tentei instalar vários pacotes python sugeridos por outros posts de stackoverflow (python-pyodb, unixodbc), mas sempre falhava.

Houve um comentário dizendo "Certifique-se de colocar as bibliotecas ODBC nativas na pasta lib no seu pacote de implantação zip"

Talvez isso seja de alguma ajuda? Não sei como obter bibliotecas ODBC nativas ..

Oh e uma última coisa. Ambas as bibliotecas funcionam se eu executá-las na minha máquina local. Eu posso ter acesso ao servidor de destino. Ele falha se eu fizer isso a partir da função lambda.

Espero que alguém possa me ajudar e, aparentemente, toda a internet com isso.

questionAnswers(1)

yourAnswerToTheQuestion