Python 谷歌云功能:部署错误,main.py不';不存在

Python 谷歌云功能:部署错误,main.py不';不存在,python,google-cloud-functions,Python,Google Cloud Functions,从本地系统部署Google云功能失败,错误如下: ERROR: (gcloud.functions.deploy) OperationError: code=3, message=Function load error: File main.py that is expected to define function doesn't exist 我已经使用控制台UI检查了在失败的部署中上载的包的内容,并且文件存在。包是使用gcloudCLI创建的: gcloud functions deplo

从本地系统部署Google云功能失败,错误如下:

ERROR: (gcloud.functions.deploy) OperationError: code=3, message=Function load error: File main.py that is expected to define function doesn't exist
我已经使用控制台UI检查了在失败的部署中上载的包的内容,并且文件存在。包是使用
gcloud
CLI创建的:

gcloud functions deploy <redacted> \
    --trigger-http \
    --runtime=python37 \
    --region=europe-west1 \
    --project=<redacted> \
    --entry-point=<redacted>
gcloud函数部署\
--触发http\
--运行时=蟒蛇37\
--地区=欧洲西部1\
--项目=\
--入口点=

在上下文中,同一项目由多人多次成功部署,但在特定日期后签出的每个新项目都开始失败。

在我们的案例中,这是因为无效的凭据,即传递给
ServiceAccountCredentials的JSON文件。缺少from_JSON_keyfile_name
。令人困惑的是,这个错误没有提到任何有关安全性、凭据或丢失的文件的内容

机密不在版本控制中,共享vault有一个与python脚本中提供的路径不匹配的陈旧文件。更正凭据后,此问题即得到修复


我们成功地部署了“dumb”函数(返回一个字符串),然后逐步添加回功能,直到功能中断,从而成功地将问题与经过身份验证的调用隔离开来。

我在Node.js中的应用程序中解决了这个问题,基本上,我确定它调用项目的
.gcloudignore
文件
.gitignore
,因此如果函数位于跳过的文件夹中,它根本找不到,那么只需删除行
#!包括:.gitignore
文件
.gcloudignore

您是否按照进行了第一次部署?请编辑问题以显示项目目录的内容,以及运行gcloud的目录。是的,该项目以前已成功部署。这似乎是云功能的一个bug。我已经在内部提交了一个问题,谢谢@谢谢你!我在运行
main.py
时遇到此错误,导致
FileNotFound
异常。具体来说,
main.py
是从
settings.py
导入的,其中包括
,将open('foo')作为f:
,其中
'foo'
是一个不再存在的文件。因此,与@Aleximinian的案例不同,谷歌API代码并没有引发例外;标准的Python库与凭证无关。对于@DustinIngram:SDK 251.0.0,测试版2019.05.17。