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

部署Google Cloud OCR相关函数时遇构建失败错误求助

解决Cloud Functions部署时的"missing main.py"错误

错误原因

ERROR: (gcloud.functions.deploy) OperationError: code=3, message=Build failed: missing main.py and GOOGLE_FUNCTION_SOURCE not specified. Either create the function in main.py or specify GOOGLE_FUNCTION_SOURCE to point to the file that contains the function; Error ID: 5c04ec9c

这个错误的核心是:Cloud Functions Gen2默认会在你指定的源码目录下寻找main.py文件来加载入口函数,要么你的代码没放在main.py里,要么你没明确告诉云函数你的代码所在的具体文件。

具体解决办法

方法1:重命名脚本为main.py

直接把包含process_image函数的OCR提取脚本重命名为main.py,然后重新运行你提供的部署命令即可。

方法2:在部署命令中指定源码文件

如果不想修改脚本文件名,在部署命令末尾添加--set-build-env-vars GOOGLE_FUNCTION_SOURCE=你的脚本文件名参数,替换成实际的文件名(比如你的脚本叫ocr_extract.py),修改后的命令如下:

gcloud functions deploy ocr-extract \
--gen2 \
--runtime=python312 \
--region=northamerica-northeast2 \
--source=. \
--entry-point=process_image \
--trigger-bucket trigger_bucket \
--set-env-vars "^:^GCP_PROJECT=just-vent-407916:TRANSLATE_TOPIC=translatetopic:RESULT_TOPIC=resulttopic:TO_LANG=es,en,fr,ja" \
--set-build-env-vars GOOGLE_FUNCTION_SOURCE=ocr_extract.py

额外检查项

  • 确认你运行部署命令的当前目录下,确实存在目标脚本文件(--source=.指定的是当前目录,若脚本在子文件夹中,需调整--source路径,比如--source=./ocr_scripts)
  • 确保--entry-point指定的process_image函数名,和脚本中的函数名完全一致(大小写敏感)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 00:42:21