繁体   English   中英

SAM 部署失败并出现大小问题 Lambda Function

[英]SAM Deployment Fails with Size Issue For Lambda Function

运行后

sam build --use-container && sam deploy --guided

CloudFormation 在创建 AWS 时失败并显示以下内容 Lambda Function

CloudFormation 创建 Lambda Function 因大小过大而失败

115885562 字节大小转换为大约 115 MB,Lambda 解压后限制为 250 MB,包括 function 代码和图层。

为什么这会失败?

编辑:似乎 115885562 字节大小仅指 Lambda function 并且考虑了 250 MB 的总数(建议引用的 Lambda 层是剩余的字节大小——这是我的主要好奇心,我现在已经扣除).

如果您有任何大型依赖项,您的 function 依赖于为这些依赖项添加 Lambda 层,而不是将它们添加到您的代码中。 在任何情况下,您都希望 function 尽可能小,因此从您的代码中删除依赖项并将它们添加到 Lambda 层中从长远来看会更好。

您可以在解压缩之前检查 zip 文件有多大。 如果大于 50MB,上传到 AWS Lambda 就太大了。但是,您可以使用一个容器来 package 您的应用程序,这会将此限制增加到 10GB。 您可以查看AWS SAM 文档中的PackageType来更改它。

另一种解决方案是对您拥有的任何大依赖项使用 lambda 层。

PS: sam build的标志--use-container与您的函数的 package 类型无关。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM