重新部署Lambda函数Zip文件时解压失败问题排查
解决Lambda重新打包Zip上传提示“无法解压”的问题
可能的原因及修复方案
- 打包层级错误:Lambda要求Zip包解压后,主执行文件(如
index.py)必须在根目录,不能嵌套在子文件夹内。很多人解压后直接打包整个文件夹,导致Lambda找不到入口文件。
修复:进入解压后的文件目录,直接打包根目录下所有内容,命令示例:zip -r function.zip .(注意末尾的.,代表当前目录所有文件) - 压缩工具/参数不兼容:部分GUI压缩工具会添加系统元数据,或使用Lambda不支持的压缩算法,比如Windows右键压缩自带的系统文件、高版本压缩格式。
修复:用标准命令行工具打包。Linux/macOS用zip命令;Windows用PowerShell命令:Compress-Archive -Path .\* -DestinationPath function.zip -Force,确保文件层级正确且无冗余元数据。 - 文件权限丢失:Lambda运行时需要执行权限,重打包后若权限丢失,可能触发模糊的解压报错。
修复:打包前给主文件添加执行权限,如chmod +x index.py;用zip命令时加-y参数保留文件权限与符号链接。 - 系统隐藏文件干扰:解压后生成的
.DS_Store(macOS)、Thumbs.db(Windows)等隐藏文件,打包后可能干扰Lambda解压流程。
修复:打包前删除此类文件,或用排除命令:zip -r function.zip . -x "*.DS_Store" -x "__MACOSX/*"
快速验证步骤
- 解压原Lambda的Zip包,进入解压后的目录
- 执行打包命令:
zip -r test.zip . - 用
test.zip直接上传Lambda,确认是否仍报错 - 若正常,再修改代码后重复打包上传
内容的提问来源于stack exchange,提问作者HarlesChoskinson
相关产品推荐
相关产品推荐

