AWS Lambda + Python-ldap
AWS Lambda + Python-ldap
我正在尝试将 python-ldap 与 AWS Lambda 结合使用。我从以下位置下载了压缩包: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 库之上。这个 article - 尽管与 python ldap 模块无关 - 描述了如何捆绑 Python 具有本机依赖项的包。
大纲如下:
- 使用 Amazon 创建 Amazon EC2 实例 Linux
- 安装编译器包和 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
- 创建一个压缩包,比方说
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 函数。
希望对您有所帮助。
我正在尝试将 python-ldap 与 AWS Lambda 结合使用。我从以下位置下载了压缩包: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 库之上。这个 article - 尽管与 python ldap 模块无关 - 描述了如何捆绑 Python 具有本机依赖项的包。
大纲如下:
- 使用 Amazon 创建 Amazon EC2 实例 Linux
- 安装编译器包和 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
- 创建一个压缩包,比方说
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 函数。
希望对您有所帮助。