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 命令行工具有两个子命令:build
和 test
。其中 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-function
或 aws 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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1c602f66c9280aef601c967b0f4295cb8ce4ec7b3398bd6cfdc12fcc3d799d5a |
|
MD5 | 12e194cd61888a111e6221c51739d6f7 |
|
BLAKE2b-256 | bff0cc2bf7781012c53581bd120e9648996262aeb6e53601d9f17efe0d55ec35 |
lambdex-0.2.0-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3a4ba9a75813c9e683fbeb75029327f5daf10312b362d32a512aba3147db5d33 |
|
MD5 | fb52f225da86cf09c24f86227355d4a5 |
|
BLAKE2b-256 | 3b6e26f33bdc170687ed61303cc133cfb2b871835e790cdb5bdb5139cb9497ee |