我在sls deploy
中收到此错误消息
Error:
UPDATE_FAILED: HandlerLambdaFunction (AWS::Lambda::Function)
Resource handler returned message: "Unzipped size must be smaller than 262144000 bytes
字符串
通常,我会使用--use-s3-bucket
和claudiajs来处理大型代码库。我刚开始使用serverless
框架,所以我对解决这个问题很感兴趣。
1条答案
按热度按时间g6baxovj1#
AWS Lambda部署有两种类型:
Zip存档方法有一个压缩50 MB的硬限制,部署包解压250 MB。部署包包括任何压缩的代码和相关的层(如果适用)。
解决这个问题的一种方法是使用打包工具,如webpack或类似工具,来缩小/压缩部署包,这些工具在很多情况下可以显着减少构建的大小。
使用额外的打包工具的缺点是,您必须在构建过程中添加额外的步骤,并配置这些工具以满足您的需求,在某些情况下,这可能不是超级直接的。
容器镜像部署类型有10 GB的限制,因此您可以将更多的东西打包到构建中,包括第三方二进制文件等,但这样您就必须将Docker安装程序添加到您的项目中,如果它还没有在那里。
其中一个好处是,使用Docker镜像,您可以使用与AWS Lambda相同的环境在本地调试函数。
有很多关于如何将lambda部署为AWS和其他公司提供的容器镜像的文档/教程。