vij*_*aya 11 lambda amazon-web-services
我正在开发一个lambda函数,它使用在python 2.7中创建的ResumeParser库.但是当我在AWS上部署包含库的这个函数时,它会引发以下错误:
解压缩的大小必须小于262144000字节
Gre*_*Woz 22
也许您没有排除使您的文件变大的开发包。
我的情况,(对于 NodeJS)我在我的文件中遗漏了以下内容serverless.yml:
package:
exclude:
- node_modules/**
- venv/**
Run Code Online (Sandbox Code Playgroud)
看看是否有类似的 Python 或您的案例。
Wes*_*eek 13
此问题的最佳解决方案是Lambda function使用Docker container您已构建并推送到的来部署您的AWS ECR. Lambda 容器映像的限制为 10 GB。
这是一个使用 Python 风格的示例AWS CDK
from aws_cdk import aws_lambda as _lambda
self.lambda_from_image = _lambda.DockerImageFunction(
scope=self,
id="LambdaImageExample",
function_name="LambdaImageExample",
code=_lambda.DockerImageCode.from_image_asset(
directory="lambda_funcs/LambdaImageExample"
),
)
Run Code Online (Sandbox Code Playgroud)
Dockerfile目录中包含的示例lambda_funcs/LambdaImageExample与 mylambda_func.py和requirements.txt:
FROM amazon/aws-lambda-python:latest
LABEL maintainer="Wesley Cheek"
RUN yum update -y && \
yum install -y python3 python3-dev python3-pip gcc && \
rm -Rf /var/cache/yum
COPY requirements.txt ./
RUN pip install -r requirements.txt
COPY lambda_func.py ./
CMD ["lambda_func.handler"]
Run Code Online (Sandbox Code Playgroud)
运行cdk deploy后,将自动将其Lambda function与其在 中指定的依赖项一起捆绑到映像中requirements.txt,推送到AWS ECR存储库并进行部署。
编辑:(有关此解决方案的更多详细信息可以在我的 Dev.to 帖子中
找到)
正如 Greg Wozniak 所说,您可能只是导入了无用的目录,例如 venv 和 node_modules。
package.exclude现已弃用并在 Serverless 4 中删除,您现在应该使用package.patterns:
package:
patterns:
- '!node_modules/**'
- '!venv/**'
Run Code Online (Sandbox Code Playgroud)
对我有用的解决方法:安装 pyminifier:
pip install pyminifier
Run Code Online (Sandbox Code Playgroud)
转到您要压缩的库文件夹。就我而言,我想将 site-packages 文件夹压缩到我的虚拟环境中。因此,我在 site-packages 所在的同一级别创建了一个 site-packages-min 文件夹。运行以下 shell 脚本来缩小 python 文件并在 site-packages-min 文件夹中创建相同的结构。压缩这些文件并将其上传到 S3。
#/bin/bash
for f in $(find site-packages -name '*.py')
do
ori=$f
res=${f/site-packages/site-packages-min}
filename=$(echo $res| awk -F"/" '{print $NF}')
echo "$filename"
path=${res%$filename}
mkdir -p $path
touch $res
pyminifier --destdir=$path $ori >> $res || cp $ori $res
done
Run Code Online (Sandbox Code Playgroud)
华泰
| 归档时间: |
|
| 查看次数: |
6502 次 |
| 最近记录: |