跳转到主要内容

Lambdex将pex文件转换为aws lambda的Python函数。

项目描述

lambdex

[!WARNING] Lambdex不再必要,Lambdex的0.2.0版本是最后一个版本。现代PEX可以直接用作Lambda压缩包。有关详细信息,请参阅迁移指南

Lambdex将pex文件转换为aws lambda函数。

pex是一个简化Python环境打包的工具,非常适合AWS Lambda。Lambdex接收pex文件并将它们转换为AWS Lambda函数,使您能够更容易地在云中运行复杂的应用程序。

AWS Lambda文档和概念可以在这里找到。

使用lambdex CLI

lambdex 命令行工具有两个子命令:buildtest。其中 build 命令有三种操作模式:通过指定 pex 文件中已存在的入口点(-e)或通过指定外部脚本和处理程序嵌入到 pex 文件中(-s/-H)。

步骤 1:打包 pex 文件

首先,您必须打包一个 pex 文件。假设您已经安装了 pex 工具和 requirements.txt 文件,您可以直接运行以下命令:

pex -r requirements.txt -o lambda_function.pex

以生成包含要求的 pex 文件。如果必须构建包含特定平台扩展的 pex 文件,请参阅以下提示部分以获取有关构建 Amazon Linux 特定扩展的更多信息。

步骤 2:添加 lambdex 处理程序

这可以通过两种方式之一完成,具体取决于您的代码位置。

如果您有一个名为 'handler' 的处理程序函数,位于 'mymodule.myapp' 包中,并且它已包含在 lambda_function.pex 中,那么您可以直接运行以下命令:

lambdex build -e mymodule.myapp:handler lambda_function.pex

如果您有一个名为 function.py 的脚本,其中包含名为 my_handler 的 lambda 处理程序,则您应运行以下命令:

lambdex build -s function.py -H my_handler lambda_function.pex

这将在 pex 环境中将 function.py 打包起来,并指示 lambdex 在被 AWS 调用时调用 python 函数 my_handler

如果您想构建 GCP 云函数,您需要指定入口点模块的名称为 main.py

lambdex build -s example_http_function.py -M main.py lambda_function.zip

步骤 3(可选):测试您的 lambdex 函数

一旦创建了 lambdex 文件,您可以使用 lambdex test 命令对其进行测试,就像它被 Amazon 调用一样。给定一个 lambdex 包 lambda_function.pex,您可以通过以下方式发送一个空的 json 事件:

lambdex test --empty lambda_function.pex

您还可以提供包含 json 结构的文件的列表,例如:

lambdex test lambda_function.pex event1.json event2.json ...

测试 GCP HTTP 云函数需要指定类型。

lambdex test --type gcp-http lambda_function.zip

注意:为了测试 GCP HTTP 云函数,您必须使用 pex v1.6 或更高版本。

步骤 4:上传 lambda 函数

您可以通过 AWS 控制台创建/更新 lambda 函数,或者通过 CLI 使用 aws lambda create-functionaws lambda update-function-code 命令分别执行。

注意:在创建函数时,您必须指定 AWS Lambda 处理程序为 lambdex_handler.handler。通过 CLI,这是 --handler 标志。这是 lambdex 注入的包装器,用于管理您的代码的调用。

不要将其与 lambdex build-H 选项混淆。

提示

构建 Amazon Linux pex 文件

大多数简单依赖项没有特定平台的扩展,因此可以在任何地方构建。但是,有许多流行的包(例如 numpy、scipy、matplotlib、PIL 等)需要构建 C 扩展,这可能会在打包时变得很棘手。

Amazon 提供了一个 Amazon Linux Docker 镜像,这对于构建在 AWS Lambda 上运行的特定平台扩展非常有用。有关该镜像的更多信息,请参阅文档

构建 Amazon Linux 特定 pex 文件的环境所需的最小 Dockerfile 可以在这里找到此处

控制运行时执行

要覆盖构建时指定的入口点,您可以使用 LAMBDEX_ENTRY_POINT 环境变量

LAMBDEX_ENTRY_POINT=mymodule.myapp:other_handler ...

项目详情


下载文件

下载您平台所需的文件。如果您不确定选择哪个,请了解有关 安装软件包 的更多信息。

源代码分发

lambdex-0.2.0.tar.gz (17.8 kB 查看哈希值)

上传时间 源代码

构建分发

lambdex-0.2.0-py2.py3-none-any.whl (13.1 kB 查看哈希值)

上传时间 Python 2 Python 3

由支持