python - 无法将 pyodbc 与 aws lambda 和 API 网关一起使用

标签 python amazon-web-services aws-lambda chalice

我正在尝试使用 APi Gateway 构建一个 AWS Lambda 函数,它使用 pyodbc python 包。我已按照文档中提到的步骤进行操作。当我测试运行 Lambda 函数时,我不断收到以下错误无法导入模块“app”:libodbc.so.2:无法打开共享对象文件:没有这样的文件或目录

感谢任何帮助。当我使用 Chalice 部署我的包时,我遇到了同样的错误。看来我可能需要安装 unixodbc-dev。知道如何通过 AWS Lambda 做到这一点吗?

最佳答案

只需从这里解压这个文件 - github - lambda_packages/pyodbc .这里面有 .so 文件。

现在将您的 python 代码和 .so 文件打包在一起并上传到 AWS lambda。供您引用的文件夹结构应如下所示。

lambda_function.py
libodbc.so.2
pyodbc.so
<name_this_zip>.zip

No subfolders exist

编辑:创建了一个 lambda 层并将其保存以供重复使用。在这里获取 - https://github.com/kuharan/Lambda-Layers

关于python - 无法将 pyodbc 与 aws lambda 和 API 网关一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48016091/

相关文章:

python - `super` 子类中的 `typing.NamedTuple` 在 python 3.8 中失败

python - 如何从Python实时读取终端输出?

java - 从 DynamoDB 保存和删除项目时使用 DynamoDBMapperConfig Clobber 或 Update

python - 来自 Lambda 层的 src FFmpeg 二进制文件

amazon-web-services - 一个 Lambda 容器可以同时承载多个函数吗?

python - 如果所有列都为 0,则用 1 填充 numpy 矩阵的特定列

python - 将视频转换为帧,然后在不更改 python 中的帧的情况下返回视频

amazon-web-services - API 网关 CORS 问题

amazon-web-services - AWS Glue 定价与 AWS EMR

python - AWS Lambda 是否自动删除了/tmp 中的文件?