如何创建使用Couchbase Python客户端

时间:2016-06-25 18:34:59

标签: python couchbase aws-lambda

我正在尝试使用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:无法打开共享对象文件:没有这样的文件或目录”

关于我如何能够完成这项工作的任何想法?非常感谢。

2 个答案:

答案 0 :(得分:2)

以下两点对我有用:

  • 手动将 /usr/lib64/libcouchbase.so.2 复制到您的项目文件夹中 并使用您的代码压缩它,然后再上传到AWS Lambda。
  • 将Python 2.7用作AWS Lambda控制台上的运行时,以连接到长沙发。

谢谢!

答案 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客户端。