我正在尝试使用AWS Lambda将数据从我的S3存储桶传输到Couchbase服务器,而我正在用Python编写。所以我需要在我的Python脚本中导入couchbase模块。通常如果脚本中使用了外部模块,我需要在本地pip安装这些模块并将模块和脚本压缩在一起,然后上传到Lambda。但这次不行。原因是couchbase的Python客户端与couchbase的c客户端一起工作:libcouchbase。所以我不清楚自己应该做些什么。当我简单地添加c客户端软件包时(据说我在我的部署包中有6个软件包文件夹,前5个是我运行“pip install couchbase”时安装的文件夹:couchbase,acouchbase,gcouchbase,txcouchbase,couchbase- 2.1.0.dist-info;最后一个是我安装的Couchbase的c客户端:libcouchbase),lambda不起作用并说:
“无法导入模块'lambda_function':libcouchbase.so.2:无法打开共享对象文件:没有这样的文件或目录”
关于我如何能够完成这项工作的任何想法?非常感谢。
答案 0 :(得分:2)
以下两点对我有用:
谢谢!
答案 1 :(得分:1)
不幸的是,AWS Lambda不支持执行基于C的python模块,例如Couchbase SDK。
你最好的选择是使用纯python客户端。最简单的方法是使用非官方的memcached客户端https://github.com/couchbase/couchbase-cli/blob/master/cb_bin_client.py,它使用服务器端moxi来处理端口11211上的memcached客户端。