AWS Lambda + Python-ldap



我正在尝试将python-ldap与AWS Lambda一起使用。我从以下位置下载了tarball:https://pypi.python.org/pypi/python-ldap

和使用lambda(lambda_function.py)的代码

from ldap_dir.ldap_query.Lib import ldap

并将zip上传到Lambda。

我的目录结构是

ldap_dir -> ldap_query -> Lib -> ldap folder
ldap_dir -> lambda_function.py

我是不是错过了什么?

python-ldap构建在原生OpenLDAP库之上。尽管本文与python-ldap模块无关,但它描述了如何捆绑具有本机依赖关系的python包。

其概要如下:

  • 使用AmazonLinux创建AmazonEC2实例
  • 安装编译器包以及OpenLDAP开发人员包。yum install -y gcc openldap-devel
  • 创建虚拟环境:virtualenv env
  • 激活虚拟环境:env/bin/activate
  • 升级pip(我不确定这是否有必要,但我得到了一个没有这个的警告):pip install --upgrade pip
  • 安装python-ldap:pip install python-ldap
  • 使用以下代码创建一个处理程序Python脚本,例如lambda.py

import os
import subprocess
libdir = os.path.join(os.getcwd(), 'local', 'lib')
def handler(event, context):
    command = 'LD_LIBRARY_PATH={} python ldap.py'.format(libdir)
    subprocess.call(command, shell=True)

  • 实现LDAP功能,在本例中为ldap.py

import ldap
print ldap.PORT

  • 创建一个zip包,比方说ldap.zip

zip -9 ~/ldap.zip ldap.py
zip -9 ~/ldap.zip lambda.py
cd env/lib/python2.7/site-packages
zip -r9 ~/ldap.zip *
cd ../../../lib64/python2.7/site-packages
zip -r9 ~/ldap.zip *

  • 将zip下载到您的系统中(或将其放入S3存储桶中)。现在,您可以使用Lambda.handler作为函数名并使用zip文件作为代码来创建Lambda函数

我希望这能有所帮助。

再执行一步/检查以上解决方案:尽管如此,您可能会得到 No module named '_ldap',然后检查您在local/EC2上安装的python版本是否与lambda 上的Runtime相同

相关内容

  • 没有找到相关文章

最新更新