aws-lambda - 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 建立在 native OpenLDAP 库之上。这article - 尽管与 python ldap 模块无关 - 描述了如何捆绑具有 native 依赖项的 Python 包。

大纲如下:

  • 使用 Amazon Linux 创建 Amazon EC2 实例
  • 安装编译器包和 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 函数。

希望对您有所帮助。

关于aws-lambda - AWS Lambda + Python-ldap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37018377/

相关文章:

amazon-web-services - S3 事件的 AWS Lambda Backlog

python - 使用 Python 脚本管理远程 LDAP 服务器

python - 尽管 __debug__ 为真,但条件 __debug__ 语句未执行

python - 我应该如何转义 ldap 特殊字符?

python - 解决在 Redhat Enterprise Server 上安装 python-ldap 时的 GCC 错误

amazon-web-services - 在 AWS Lambda 中处理事件之前,是否有一种惯用的方法来聚合事件?

python - 正在开发 Amazon Alexa 技能,但我在将插槽值(首字母缩略词)解读为单词时遇到问题

amazon-web-services - AWS X-Ray GoLang Lambda 到 lambda 跟踪并显示在服务 map 中

node.js - DynamoDb 扫描返回本地而非实时的所有数据

Python+LDAP+SSL