Google Cloud Function-函数加载错误:预期用于定义函数的文件main.py不存在

Jed*_*Jed 5 python git google-cloud-functions

我正在尝试实现基于Git样式存储库中代码的Google Cloud函数。我已将代码链接到Google Cloud Platform的“源存储库”,并且将代码复制并粘贴到GCP函数“内联编辑器”中时,我的函数运行正常。当我切换到“ Cloud Source存储库”选项时,我可以知道它正在从该存储库中读取数据。在此之前,我曾尝试过其他错误。但是,在解决之前/其他问题之后,现在出现此错误:

Function load error: File main.py that is expected to define function doesn't exist

我的文件的结构与此类似,main.py位于根目录中:

.
??? package
|   ???script1.py
|   ???script2.py
??? package2
??? ...
??? main.py
??? requirements.txt
Run Code Online (Sandbox Code Playgroud)

从上可以正常读取requirements.txt(某些先前的错误来自该读取过程),但是为什么不从中读取main.py呢?我在GCP功能中的设置如下所示:

Google Cloud功能编辑窗口屏幕截图

我试图将main.py移至项目中的另一个目录,并将“带有源代码的目录”设置为该目录,但这给了我一个错误,提示它找不到该目录。有建设性的想法吗?

编辑/其他信息

我使用的不是我的存储库中的分支,master而是为此功能使用Google Cloud Pubsub主题触发器。

Met*_*oyD 12

如果您尝试使用 GCS 存储桶或文件上传功能上传代码 zip,请确保您没有压缩包含代码的文件夹,而只是压缩代码文件。

CodeFolder
??? package
|   ???script1.py
|   ???script2.py
??? package2
??? ...
??? main.py
??? requirements.txt
Run Code Online (Sandbox Code Playgroud)

不要创建从一个Zip文件CodeFolder

相反,创建一个zip文件main.pyrequirement.txtpackage

来源

  • “相反,从 main.py 和 request.txt 创建一个 zip 文件并打包。” - 荣誉! (2认同)

Dus*_*ram 4

您是否在推送新提交后重新部署该功能?你需要做类似的事情:

gcloud functions deploy NAME \
  --source https://source.developers.google.com/projects/PROJECT_ID/repos/REPOSITORY_ID/moveable-aliases/master/paths/SOURCE \
  TRIGGER
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅https://cloud.google.com/functions/docs/deploying/repo 。