python-3.x - AWS Lambda 到 Firestore 错误 : cannot import name 'cygrpc'

标签 python-3.x amazon-web-services firebase firebase-storage google-cloud-firestore

在我的 AWS Lambda Python 3.6 函数上,我想使用 Google Firestore (Cloud Firestore BETA) 进行缓存,但是一旦我添加

from google.cloud import firestore

到我的 Python 脚本并将 ZIP 上传到 AWS Lambda 函数,Lambda 测试返回错误
Unable to import module 'MyLambdaFunction': cannot import name 'cygrpc'. 

AWS CloudWatch 日志不包含有关错误的任何详细信息,仅包含相同的错误消息。

Lambda 函数在我的本地开发机器(Windows 10)上运行良好,我可以很好地写入 Firestore。如果我注释掉导入和所有 Firestore 相关行,它也适用于 AWS。

我如何解决这个问题的任何提示?

最佳答案

Firestore 的 Python 客户端依赖于基于 C 的 GRPC 实现。默认情况下,这在 AWS Lambda 中似乎不起作用。

Node.js 用户报告了类似的问题,并记录了 building a docker image 的解决方法。 .

这应该类似于获取任何其他需要 native 代码才能工作的 python 包。也许类似于这种获取 scikit to work 的方法?

我希望这足以让您朝着正确的方向前进,但不幸的是,我对 AWS Lambda 一无所知 :-(。

关于python-3.x - AWS Lambda 到 Firestore 错误 : cannot import name 'cygrpc' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46669176/

相关文章:

python - 函数内的函数 - 全局和非局部作用域

python - Pandas - 在列中的 groupby 之后连接字符串,忽略 NaN,忽略重复项

node.js - 将 lambda zip 上传到 s3 时,压缩方法重要吗?

amazon-web-services - Auto Scaling 组中的更新策略无法更新实例

android - 提供的身份验证凭据格式错误或已过期

python-3.x - 我可以将长 bash 命令传递给 asyncio.subprocess.create_subprocess_exec() 吗?

python - 尝试在公司防火墙后面设置 Python pip 安装时出错

amazon-web-services - 发生错误 : ServerlessDeploymentBucket - API: s3:CreateBucket Access Denied

database - 无法将数据添加到 Firestore 数据库

firebase - 如何从 firestore 中删除每个集合