AWS Lambda Java Workshop报错:InvalidParameterValueException(非空Zip问题)
Java on AWS Lambda Workshop 上传Zip包报错问题
测试Java on AWS Lambda Workshop时,无法使用deploy.sh脚本,改用AWS Toolkit或浏览器上传生成的Zip包,触发以下错误:
InvalidParameterValueException: Uploaded file must be a non-empty zip
错误日志详情:
2024-03-08 12:43:36.874 [error] Failed to run updateFunctionCode: InvalidParameterValueException: Uploaded file must be a non-empty zip (statusCode: 400; requestId: f67e24a6-ed9a-4345-8c51-6cd0d4421dac) 2024-03-08 12:43:36.875 [error] Lambda upload failed: 'InvalidParameterValueException: Uploaded file must be a non-empty zip (statusCode: 400; requestId: f67e24a6-ed9a-4345-8c51-6cd0d4421dac)' 2024-03-08 12:43:36.875 [warning] telemetry: invalid Metric: "lambda_updateFunctionCode" emitted with result=Failed but without the `reason` property. Consider using `.run()` instead of `.emit()`, which will set these properties automatically. See https://github.com/aws/aws-toolkit-vscode/blob/master/docs/telemetry.md#guidelines 2024-03-08 12:47:33.234 [info] telemetry: sent batch (size=3)
经确认,Zip包并非空文件,文件信息如下:
ls -lah UnicornLocationFunctionGraalVM/ total 15M drwxr-xr-x 1 S 1049089 0 Mar 7 14:35 . drwxr-xr-x 1 S 1049089 0 Mar 8 12:20 .. -rw-r--r-- 1 S 1049089 15M Mar 8 12:21 unicorn-location-graal.zip
解决建议
- 检查Zip包结构:Lambda对Java/GraalVM包的结构有明确要求,GraalVM原生镜像部署时,根目录必须包含
bootstrap可执行文件;如果是JAR包,需确保符合Lambda的JAR规范,不能仅将文件随意打包。 - 验证Zip包完整性:执行
unzip -t unicorn-location-graal.zip命令,检查包是否损坏、能否正常解压。 - 修正打包方式:进入包内容所在目录,执行
zip -r ../unicorn-location-graal.zip .,避免将外层目录打包进去,导致Lambda无法识别有效文件。 - 检查文件权限:确保Zip内的
bootstrap文件有执行权限,Linux下先执行chmod +x bootstrap,再重新打包。 - 尝试AWS CLI上传:用命令
aws lambda update-function-code --function-name YOUR_FUNCTION_NAME --zip-file fileb://unicorn-location-graal.zip上传,获取更详细的错误反馈。
内容的提问来源于stack exchange,提问作者user23562219
相关产品推荐
相关产品推荐

