如何创建使用 Couchbase Python 客户端的 AWS Lambda 部署包
How to create AWS Lambda deployment package that uses Couchbase Python client
我正在尝试使用 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 does not work and said:
"Unable to import module 'lambda_function': libcouchbase.so.2: cannot open shared object file: No such file or directory"
知道如何完成这项工作吗?非常感谢。
不幸的是,AWS Lambda 不支持执行基于 C 的 python 模块,例如 Couchbase SDK。
您最好的选择是使用纯 python 客户端。最简单的方法是使用非官方的 memcached 客户端 https://github.com/couchbase/couchbase-cli/blob/master/cb_bin_client.py,它使用服务器端 moxi 来处理端口 11211 上的 memcached 客户端。
以下两点对我有用:
- 手动复制/usr/lib64/libcouchbase.so.2到你的项目文件夹
并在上传到 AWS Lambda 之前使用您的代码对其进行压缩。
- 在 AWS Lambda 控制台上使用 Python 2.7 作为运行时连接到 couchbase。
谢谢!
我正在尝试使用 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 does not work and said:
"Unable to import module 'lambda_function': libcouchbase.so.2: cannot open shared object file: No such file or directory"
知道如何完成这项工作吗?非常感谢。
不幸的是,AWS Lambda 不支持执行基于 C 的 python 模块,例如 Couchbase SDK。
您最好的选择是使用纯 python 客户端。最简单的方法是使用非官方的 memcached 客户端 https://github.com/couchbase/couchbase-cli/blob/master/cb_bin_client.py,它使用服务器端 moxi 来处理端口 11211 上的 memcached 客户端。
以下两点对我有用:
- 手动复制/usr/lib64/libcouchbase.so.2到你的项目文件夹 并在上传到 AWS Lambda 之前使用您的代码对其进行压缩。
- 在 AWS Lambda 控制台上使用 Python 2.7 作为运行时连接到 couchbase。
谢谢!