为什么使用AWS Lambda层和AWS SAM部署包会有大小差异

时间:2020-07-07 12:45:57

标签: python-3.x amazon-web-services aws-lambda aws-sam aws-lambda-layers

我正在处理Lambda函数,该函数需要导入SciPypyarrow。由于存在一个包含SciPy-AWSLambda-Python38-SciPy1x:14的官方AWS层,因此在函数中使用它。 pyarrow包含在awswrangler中,而AWS SAM已被创建为可在先前制作的Lambda之一中使用的层。

{{3}}用于打包和部署功能。现在,将awswrangler层的内容复制到可以正确部署和执行的部署包目录之间,以及在SciPyawswrangler层中同时使用{功能。如果同时使用了两层,则执行sam deploy会出现以下错误:

Layers consume more than the available size of 262144000 bytes (Service: AWSLambdaInternal; Status Code: 400; ...

要注意的一件事是,将awswrangler层内容复制到部署程序包时,它与现有内容没有重叠,因此部署程序包不会变小,因为它已经包含awswrangler使用的某些软件包。

1 个答案:

答案 0 :(得分:0)

部署软件包的大小(未压缩)必须小于250 MB(https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html)。将这两个层相加会导致262 MB,超出限制。