postgresql - 在 AWS Lambda 函数内运行 psycopg2 时出现问题

标签 postgresql amazon-web-services aws-lambda psycopg2

尝试在 AWS Lambda 中运行 psycopg2 时收到以下错误:

/var/task/functions/../vendored/psycopg2/_psycopg.so: ELF file's phentsize not the expected size: ImportError
Traceback (most recent call last):
File "/var/task/functions/refresh_mv.py", line 64, in execute
session = SessionFactoryGraphQL.get_session(app=item['app'])
File "/var/task/lib/session_factory.py", line 22, in get_session
engine = create_engine(conn_string, poolclass=NullPool)
File "/var/task/functions/../vendored/sqlalchemy/engine/__init__.py", line 387, in create_engine
return strategy.create(*args, **kwargs)
File "/var/task/functions/../vendored/sqlalchemy/engine/strategies.py", line 80, in create
dbapi = dialect_cls.dbapi(**dbapi_args)
File "/var/task/functions/../vendored/sqlalchemy/dialects/postgresql/psycopg2.py", line 554, in dbapi
import psycopg2
File "/var/task/functions/../vendored/psycopg2/__init__.py", line 50, in <module>
from psycopg2._psycopg import ( # noqa
ImportError: /var/task/functions/../vendored/psycopg2/_psycopg.so: ELF file's phentsize not the expected size

奇怪的是:一切都工作正常,直到昨天(持续了5个多月),突然停止工作。没有任何库已更新。

我尝试从头开始构建,如 https://github.com/jkehler/awslambda-psycopg2 所示,但仍然有同样的错误。

有人可以帮我吗?

最佳答案

问题出在最新版本的无服务器框架中。我假设您正在使用无服务器来部署 lambda 函数。

serverless remove

npm install <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="186b7d6a6e7d6a747d6b6b5829362a28362a" rel="noreferrer noopener nofollow">[email protected]</a> -g

这应该有效。

关于postgresql - 在 AWS Lambda 函数内运行 psycopg2 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45998320/

相关文章:

postgresql - Postgres 数组包含来自另一个数组的任何内容吗?

node.js - 在 AWS CodeBuild 期间使用 npm install 时未创建 node_modules 目录

amazon-web-services - 如何使用 Cloud Formation 模板自动扩展 DynamoDB?

amazon-web-services - 直接在云形成中设置堆栈级标签,无需包装模板

javascript - AWS Lambda 在终止前不会解决所有 promise

php - 用于 postgreSQL 的 ssh 隧道

postgresql - 使用另一个表中的值在表中进行计算

amazon-web-services - 无服务器框架和 AWS Step Functions(AWS 状态机)由上传到 S3 的文件触发

postgresql - Heroku - 无法通过 Play Framework 应用程序设置 postgres 数据库?

amazon-web-services - 使用 golang 的 AWS S3 并行下载