从S3上传Jar包至Lambda函数时提示无法解压文件的原因排查
Lambda上传Jar包报错「Could not unzip uploaded file」的原因分析
执行命令
aws lambda update-function-code --function-name testing-upload-jar-lambda --s3-bucket testing-jar --s3-key abc-test.jar --region us-east-1
报错内容
InvalidParameterValueException: Could not unzip uploaded file. Please check your file, then try to upload again.
可能的原因如下:
- Jar包本身损坏或未正确打包:JAR本质是标准ZIP格式压缩包,若打包过程中断、文件缺失,或者生成的文件不是合法的ZIP/JAR格式,Lambda无法正常解压。
- 使用了Lambda不支持的压缩算法:Lambda仅兼容标准ZIP压缩算法,若你用了特殊压缩方式(比如7-Zip的高压缩模式、非ZIP格式的压缩工具),会导致解压失败。
- S3中的Jar包传输不完整:上传Jar包到S3时出现网络中断,导致文件只上传了部分,或者后续文件被意外修改,最终Lambda获取到的是损坏的文件。
- 权限问题间接引发:如果Lambda的执行角色没有
s3:GetObject权限访问目标S3桶和文件,可能在拉取文件时出现部分读取失败,进而触发解压错误(虽然报错提示是解压问题,但权限问题可能是隐性诱因)。 - 部署包超出Lambda限制:Lambda对部署包有大小限制(压缩后最大50MB,未压缩最大250MB),若你的Jar包超出这个范围,也可能触发类似的解压失败提示。
内容的提问来源于stack exchange,提问作者gcpdev-guy
相关产品推荐
相关产品推荐

