从S3桶上传超10MB压缩文件至Lambda遇解压错误的解决方法
解决Lambda部署包上传解压失败问题
核心原因
你上传的是.rar格式文件,但Lambda及配套的S3部署流程仅支持ZIP格式的部署包,系统无法识别解压RAR文件,因此触发报错。
具体解决步骤
1. 将RAR内容转换为标准ZIP包
- 先解压RAR文件,取出Lambda代码和依赖文件
- 选中所有文件(重点:Lambda入口文件如
index.js、lambda_function.py必须放在ZIP根目录,不能嵌套在子文件夹内) - 用压缩工具打包成ZIP格式(禁止再用RAR或其他非ZIP格式)
2. 确保ZIP包符合Lambda部署规范
- 依赖适配运行环境:如果是Node.js的Lambda,必须在与Lambda一致的系统(如Amazon Linux 2)下安装依赖,避免Windows环境安装的依赖在Linux上运行报错。示例命令(Node.js):
cd /path/to/your/code # 安装适配Lambda环境的生产依赖 npm install --production --target=18.17.0 --arch=x64 --platform=linux - 清理冗余文件:不要把
.git、node_modules/.bin这类无关文件打包,减少包体积同时避免潜在异常
3. 重新上传验证
将制作好的ZIP包上传到S3,再触发部署流程,或者直接在Lambda控制台上传ZIP包测试是否正常
额外排查点
- 若转ZIP后仍报错,先在本地解压ZIP验证文件完整性,排除包损坏问题
- 确认ZIP包大小未超过Lambda限制(当前压缩包最大50MB,解压后最大250MB)
内容的提问来源于stack exchange,提问作者githinjimuthee
相关产品推荐
相关产品推荐

