部署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
相关产品推荐
相关产品推荐

