我正在做一个ML项目,利用AWS Lambda构建模型和生成预测。Lambdas是用python编写的,并使用几个ML库,如熊猫、skLearning、Numpy和Scikit学习。这些lambda使用由Lambda层打包的共享代码。我使用AWS CDK进行项目部署。CDK代码是用TypeScript编写的,不要问我为什么要混合Python和TypeScript,这与此情况无关。
由于存在ML库,包(lambda代码层)的大小超过了允许的最大大小250MB。
在AWS宣布集装箱化lambdas支持后,我决定尝试一下,以克服250MB的限制。然而,我没有找到任何适合我情况的好例子,所以我试图自己建立它。
CDK代码如下所示:
...
// Create a lambda layer from code
// Code is located in lambda-code/ml directory and it looks
// like any Python package with main ML and DB connection functions
const mlLayer = new PythonLayerVersion(this, 'mlLayer', {
entry: './lambda-code/ml/',
})
...
// Lambda function is specified like
const classifyTransactionLambda = new DockerImageFunction(this, 'classifyTransactionLambda', {
code: DockerImageCode.fromImageAsset('./lambda-code/classify'),
memorySize: 512,
layers: [mlLayer],
tracing: Tracing.ACTIVE,
environment: {
BUCKET_NAME: mlModelsBucket.bucketName,
ENV: env
}
});
...
代码的结构如下:
lambda中的Dockerfile:
# Use the python lambda image from AWS ECR
FROM public.ecr.aws/lambda/python:3.7
COPY requirements.txt ./
RUN pip3 install -r requirements.txt
COPY index.py ./
CMD ["index.classify_transaction_handler"]
运行cdk deploy时,出现以下错误:
此lambda函数使用与此层不兼容的运行时(FROM_IMAGE不在[python3.7]中)
有人遇到过这样的问题吗?此错误是否表示mlLayer版本与lambda classifyTransactionLambda不兼容?
任何帮助都将不胜感激!
在这一点上
定义为容器图像的函数不支持层。构建容器映像时,可以将首选运行时和依赖项打包为映像的一部分。
https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html
所以我修改了我的构建,在构建图像之前将所有层/库代码复制到每个lambda函数。
我正在尝试使用AWS CDK部署lambda,但它似乎无法正常工作/部署。管道中的“框”为绿色,因此不会返回任何错误。 一切似乎都很好,但是当我手动运行它进行测试时,我收到了下一条消息: 问题是,如果我手动将人工制品下载到我的机器上,并使用上传按钮将其上载,它将正常工作。 我有一个,其中包含,这是我用来创建lambda的堆栈。 然后我有管道,其中一个步骤是构建lambda: 还有更多的步骤,但它们
我有一个场景,需要使用AWS CDK python语言创建多个lambda函数。 当我尝试为每个函数创建多个堆栈时,它创建了第一个函数和显示该函数已经存在的其余函数。 如果我们调试cdk。对于创建的模板,两个堆栈Lambda函数显示相同的资源ID,如下所示: 如何为创建多个函数的资源获取唯一ID?你能建议如何克服这个问题吗?我想创建多个lambda函数,即使解决方案是通过创建循环来实现的,也很好
我试图通过AWS CDK与Lambda建立一个CI/CD管道。我们在这里使用gradle项目。此外,我遵循了示例留档。我们定义了两个堆栈,它们是APIStack和ApiStackPipeline,其中APIStack由处理,ApiStackPipeline由处理。 我们在ApiStack中初始化Lambda函数; 在这种情况下,我们设置参数与所示的留档相同(即使我不确定它是如何得到的)。 现在我们
我想用Lambda函数部署AWS CDK堆栈。用例是支持类似于Trek10无服务器CI/CD管道中描述的功能,相关代码如下。 简而言之,AWS代码管道仅支持在单个Git分支中侦听更改。我想听听与创建repo和分支相关的GitHub事件,并创建代码管道实例来响应这些事件,以便每个Git存储库的每个分支都有一个管道。我想要一个Lambda来监听GitHub事件并创建CDK堆栈。Trek10示例使用Py
本文向大家介绍详解angular应用容器化部署,包括了详解angular应用容器化部署的使用技巧和注意事项,需要的朋友参考一下 Intro 我自己有做一个个人主页,虽然效果不怎么样(不懂设计的典型程序猿...),但是记录了我对于前端框架及工具的一些实践, 从开始只有一个 angularjs 制作的页面到后面加入 less 动态写css, gulp 自动化的将 less 文件编译成 css 文件以及
我按照下面的教程使用CDK创建Lambda部署管道。当我试着把所有的东西都放在同一个账户里时,它会很好地运作。https://docs.aws.amazon.com/cdk/latest/guide/codePipeline_example.html 但我的场景与示例略有不同,因为它涉及两个AWS帐户,而不是一个。我在OPS帐户中维护应用程序源代码和管道,这个管道将把Lambda应用程序部署到UA