Trouble Connecting to Postgres DB Using Sqlachemy with AWS Lambda Python Function (Chalice framework)

231 Views Asked by At

I'm attempting to connect to a Postgres DB via sqlalchemy from an aws lambda function using aws chalice. From what I've read, psycopg2 is necessary in order to build a connection using sqlalchemy. As recommended by other stackoverflow questions, I'm using the psycopg2 library at https://github.com/jkehler/awslambda-psycopg2 However, I'm having trouble connecting to the DB. The error from the lambda function is shown below. Can anyone help me understand what I'm missing?

{
    "errorMessage": "/var/task/psycopg2/_psycopg.so: invalid ELF header", 
    "errorType": "ImportError", 
    "stackTrace": [
        [
            "/var/task/chalice/app.py", 
            258, 
            "__call__", 
            "response = view_function(*function_args)"
        ], 
        [
            "/var/task/app.py", 
            18, 
            "authenticateUser", 
            "(connection, metadata) = connect(DATABASE[\"username\"], DATABASE[\"password\"], DATABASE[\"database\"], DATABASE[\"host\"], DATABASE[\"port\"])"
        ], 
        [
            "/var/task/app.py", 
            32, 
            "connect", 
            "con = sqlalchemy.create_engine(url, client_encoding='utf8')"
        ], 
        [
            "/var/task/sqlalchemy/engine/__init__.py", 
            387, 
            "create_engine", 
            "return strategy.create(*args, **kwargs)"
        ], 
        [
            "/var/task/sqlalchemy/engine/strategies.py", 
            80, 
            "create", 
            "dbapi = dialect_cls.dbapi(**dbapi_args)"
        ], 
        [
            "/var/task/sqlalchemy/dialects/postgresql/psycopg2.py", 
            554, 
            "dbapi", 
            "import psycopg2"
        ], 
        [
            "/var/task/psycopg2/__init__.py", 
            50, 
            "<module>", 
            "from psycopg2._psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID"
        ]
    ]
}
0

There are 0 best solutions below