Amazon web services AWS Lambda错误:解压缩大小必须小于262144000字节

Amazon web services AWS Lambda错误:解压缩大小必须小于262144000字节,amazon-web-services,lambda,Amazon Web Services,Lambda,我正在开发一个lambda函数,它使用python 2.7中的ResumeParser库。但当我在AWS上部署此函数(包括库)时,它会引发以下错误: 解压缩大小必须小于262144000字节 这是一个无法更改的错误: AWS Lambda限值错误 超出前面限制表中列出的任何限制的函数将失败,并出现“超出限制”异常。这些限制是固定的,目前无法更改。例如,如果从AWS Lambda收到异常CodeStorageExceedexception或类似于“超出代码存储限制”的错误消息,则需要减小代码存储的

我正在开发一个lambda函数,它使用python 2.7中的ResumeParser库。但当我在AWS上部署此函数(包括库)时,它会引发以下错误:

解压缩大小必须小于262144000字节

这是一个无法更改的错误:

AWS Lambda限值错误

超出前面限制表中列出的任何限制的函数将失败,并出现“超出限制”异常。这些限制是固定的,目前无法更改。例如,如果从AWS Lambda收到异常CodeStorageExceedexception或类似于“超出代码存储限制”的错误消息,则需要减小代码存储的大小


你需要缩小包裹的尺寸。如果您有大型二进制文件,请将它们放在s3中并在引导程序上下载。同样,对于依赖项,您可以从s3位置
pip安装
easy\u安装
它们,这将比从pip回购中提取更快。

一个对我有效的解决方法: 安装pyminifier:

    pip install pyminifier
转到要压缩的库文件夹。在我的例子中,我想在我的虚拟环境中压缩站点包文件夹。所以我在站点包所在的同一级别创建了一个站点包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        

HTH

也许您没有排除使文件增长如此之大的开发包

在我的案例中,(对于NodeJS),我在我的
serverless.yml
中遗漏了以下内容:

package:
  exclude:
    - node_modules/**
    - venv/**

看看Python或您的案例是否有类似的功能。

谢谢,在我的案例中,我认为我们没有大型二进制文件。正在安装的pip包增加了总的zip大小。如果我尝试通过pip(s3)进行安装。当我打包项目时,它不会仍然被下载吗?如果它不在包中,那么AWS不会拒绝它,使用pip安装是可以的。有没有一种方法可以在无服务器配置中实现这一点?你是如何将zip上传到S3的?是的,有,结帐哇,我花了整个下午寻找解决方案。非常感谢你!当您的代码尝试加载/使用包时,删除“node_modules/**”不会导致运行时错误吗?排除节点函数的所有依赖项实际上是不必要的,特别是对于像Serverless这样的工具,因为它已经排除了开发依赖项。确保像
aws sdk
这样的软件包作为开发人员依赖项安装,这意味着您可以在不增加软件包膨胀的情况下完成代码。