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"
]
]
}