python - AWS CDK python 捆绑包,在 requirements.txt 中具有依赖项
问题描述
我一直在玩https://github.com/aws-samples/aws-cdk-examples/tree/master/python中的简单示例,所有项目都以 lambda-* 开头
但是,我还没有看到 aws-lambda 处理程序导入库的示例。这些库定义在requirements.txt
- AWS lambda如何导入自己的
requirements.txt
- 如果无法导入依赖项。我将它们打包成 .zip 文件。
但是,现有方法不需要 .zip 。请参阅此提案https://github.com/aws/aws-cdk/issues/6294
项目结构是这样的:
project/
|
|-- lambda/
|-- lambda/handler.py
|-- lambda/module1.py
|-- lambda/module2.py
|-- lambda/requirements.txt
|
|-- stack/ias_stack.py # define the Infrastructure as code
|
|-- app.py # call "ias_stack" module
|
|-- requirements.txt
我想在文件夹“lambda/”中部署代码+依赖项
如何使用 CDK 在 Python AWS-Lambda 中导入依赖项?
这一定是可能的。我已经将 JVM 代码库打包到 .zip 中。Terraform 将此 .zip 推送到 AWS lambda 中。
搜索
搜索后,我不是唯一一个面临这个问题的人 如何在 AWS CDK 创建的 Python Lambda 函数中安装外部模块?
我通过创建一个 Lambda 层来解决。我将发布一个包罗万象的解决方案。
解决方案
aws-cdk.aws-lambda-python
L2 结构专门为此而存在。
这是文档:
https://docs.aws.amazon.com/cdk/api/latest/docs/aws-lambda-python-readme.html
打字稿示例形成上述文档:
import * as lambda from "@aws-cdk/aws-lambda";
import { PythonFunction } from "@aws-cdk/aws-lambda-python";
new PythonFunction(this, 'MyFunction', {
entry: '/path/to/my/function', // required
index: 'my_index.py', // optional, defaults to 'index.py'
handler: 'my_exported_func', // optional, defaults to 'handler'
runtime: lambda.Runtime.PYTHON_3_6, // optional, defaults to lambda.Runtime.PYTHON_3_7
});
它将安装来自诗歌文件、pipfile 或 requiremenets.txt 的依赖项
推荐阅读
- c++ - 在构造函数继承中使用默认构造函数
- java - 如何正确管理具有 OneToOne BiDirectional 关系的关联 JPA 实体?
- c# - 微调器不显示所选值
- reactjs - 部署新版本的 ASP.NET Core / React 应用程序时如何确保客户端完全重新加载?
- python - FileNotFoundError:[Errno 2],使用绝对路径和 BAT 文件:WindowsServer 16/Python
- ios - 为什么 GMSMapView 没有设置在合适的坐标?
- machine-learning - 为什么使用多项朴素贝叶斯分类器对正类和负类进行几乎相同的前 10 个特征?
- ios - 隐藏 iOS 导航栏中的所有内容,包括图标
- dart - 颤动:在垂直 SliverList 内使用水平 ListView 的错误
- javascript - 属性中的括号不是有效的选择器