将大型python包加载到AWS lambda函数中

时间:2017-06-20 12:12:15

标签: python amazon-web-services amazon-s3 aws-lambda

在尝试将功能上传到AWS lambda时,我似乎无法解决此(下面提到的)错误:

  

“代码”标签无法保存。原因:解压缩的大小必须小于262144000字节

我已经压缩了该功能及其所有依赖项,并将压缩文件上传到S3,并在lambda的提示符下粘贴了文件的S3 URL(上传文件)来自亚马逊S3)。

任何线索都会受到赞赏。感谢

2 个答案:

答案 0 :(得分:2)

正如kosa提到的,有250MB的硬限制。这个reddit线程有一些好主意: https://www.reddit.com/r/aws/comments/4qrw9m/how_to_work_around_aws_lambdas_250mb_limit/

大多数解决方案1)以后加载更多代码,从而达到250限制2)将代码拆分成更小的部分,无论如何更加aws-lambda-ish,以及3)使用像这样的strip命令伙计:https://serverlesscode.com/post/scikitlearn-with-amazon-linux-container/

2可能是最好的方法,如果你可以分开它。

答案 1 :(得分:2)

添加到Entropic的答案,使用像pyminifier之类的东西呢?如果它执行的缩小足以达到250 MB的限制,这可能是一个非常简单的解决方案。

此外,如果您使用的是AWS SDK,则无需将其作为it is included in the Lambda execution environment包含在软件包中。如果是这种情况,这也可以节省一些空间。