You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从源码Zip部署Google Cloud Function失败求助

解决GCP函数部署Zip包解压失败问题

问题分析

从日志来看,GCS已成功将源码包下载到/tmp/source-archive.zip,但unzip工具无法识别该文件为有效Zip包,提示End-of-central-directory signature not found,说明文件在上传或存储环节损坏,或是打包方式不符合GCP的要求。

排查与修复步骤

  • 验证本地Zip包有效性
    在本地用unzip命令测试解压完整性:

    unzip -t your-source.zip
    

    如果本地解压报错,直接重新打包源码;如果本地正常,说明问题出在上传到GCS的过程中。

  • 规范Zip打包方式

    • 确保打包的是源码目录内的文件,而非目录本身。比如源码存放在my-function/目录下,要进入该目录执行:
      zip -r function-source.zip .
      
      避免直接打包外层目录(否则GCP可能无法正确识别函数入口文件)。
    • 不要使用分卷压缩、加密压缩等特殊格式,GCP仅支持标准Zip格式。
  • 重新上传Zip包

    • 通过GCP Console上传时,确保上传过程不中断;使用gcloud命令行部署时,直接指定本地Zip包路径,避免手动上传到GCS后再引用:
      gcloud functions deploy YOUR_FUNCTION_NAME --source=./your-source.zip --runtime=YOUR_RUNTIME
      
    • 上传完成后,从GCS控制台下载该Zip包,再次本地验证是否损坏。
  • 校验GCS对象完整性
    对比本地Zip包与GCS中对应对象的MD5哈希值:

    • 本地计算哈希:
      md5sum your-source.zip
      
    • 查看GCS对象哈希:
      gsutil stat gs://gcf-sources-159756393638-us-central1/fetch-shader-f7a3587c-340b-45ce-84ea-59030f1df7cf/version-37/function-source.zip
      

    若两者不一致,说明上传过程中文件损坏,重新上传即可。


内容的提问来源于stack exchange,提问作者John Twigg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 15:06:45