AWS lambda来公司的FireStore错误:无法导入名称“cygrpc”
在我的AWS拉姆达的Python 3.6的功能我想使用谷歌公司的FireStore(云公司的FireStore BETA)用于高速缓存的目的,但只要我添加AWS lambda来公司的FireStore错误:无法导入名称“cygrpc”
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客户端依赖于GRPC的基于C的实现。这在AWS Lambda中默认情况下不起作用。
Node.js用户报告过类似的问题,他们已经记录了一个解决方案building a docker image。
这应该类似于任何获取任何其他需要本地代码工作的python包。也许像这种方法获得scikit to work?
我希望这是足以让你在正确的方向前进,但不幸的是我不知道的AWS LAMBDA :-(什么。
陶然成同样的问题,我解决它通过使用插件serverless-python-requirements
无服务器架构和传球:
pythonRequirements:
dockerizePip: true
本质上,这将安装你的c-基于包(和所有其他包)的码头工人,容器,其中它的工作,然后将这些符号链接到你的拉姆达FN
一个有用的。指导可以发现于:https://serverless.com/blog/serverless-python-packaging/
插件:https://github.com/UnitedIncome/serverless-python-requirements