请您帮我,当我尝试部署Google Cloud功能时收到此错误:
HTTP Error: 400, Default service account 'project-name@appspot.gserviceaccount.com' doesn't exist. Please recreate this account (for example by disabling and enabling the Cloud Functions API), or specify a different account.
用于部署的命令是:
firebase deploy --only functions
暂时的解决方案很好,但是如果您可以帮助我永久解决,那就更好了。
谢谢。
答案 0 :(得分:1)
就我而言,App Engine默认服务帐户已删除。看起来像这样:{project_id}@appspot.gserviceaccount.com
所以我必须像这样恢复服务帐户:
您现在可以从https://cloud.google.com/iam/reference/rest/v1/projects.serviceAccounts/undelete
恢复已删除的服务帐户您必须从https://console.cloud.google.com/home/activity获取服务帐户的唯一ID
来源:https://stackoverflow.com/a/55277567/888881
API浏览器是使用IAM API的一种简便方法:https://developers.google.com/apis-explorer/#p/
答案 1 :(得分:1)
我一直在努力解决此问题,然后向Google提出了一个案子。
首先导航到Google Cloud Platform并查看您的服务帐户。
在您的Firebase项目服务帐户列表中尝试找到
如果缺少“ @ appspot.gserviceaccount.com”,则您将无法进行任何部署(请与GOOGLE一起从电子邮件下面进行查看),否则请检查并查看是否已启用,然后尝试将其禁用并再次启用。
默认情况下预安装@ appspot.gserviceaccount.com,无论是否使用付费帐户。尝试回想一下是否可以在部署之后或部署之前将其删除。
现在,如果您出于任何原因在超过30天的时间内将其删除,则无法恢复,必须创建一个新的firebase项目。但是,如果在30天内,您可以取消删除它。
来自GOOGLE的电子邮件:
电子邮件#1 ” 阿里你好
我正在检查您项目的日志,很遗憾,该服务帐户已在Ma上删除,没有机会恢复或重新创建它
唯一可用的解决方法是创建一个新项目并在此处部署所需的服务。我知道这可能不是您的最佳选择,但这是设计使然的方式。
如果您有其他问题,请随时回信。
干杯,”
电子邮件#2,
“你好,阿里
很高兴您能成功部署功能,很遗憾,删除服务帐户后30天无法恢复服务帐户,这是唯一的解决方案。如果您还有其他疑问,请通过我们的支持渠道再次与我们联系。
干杯,”
最后这是一个有用的命令行,它将帮助您调试此问题,但是,如果没有服务帐户,它将无济于事,它只会突出显示以下内容:
firebase deploy --only功能--debug
这是我的错误:
“ HTTP错误:400,默认服务帐户'
我希望这会有所帮助。
答案 2 :(得分:0)
根据错误消息,您可以通过控制台访问此url来启用API并启用api。
或通过gcloud命令:
gcloud services --project <project_id> enable cloudfunctions.googleapis.com
答案 3 :(得分:0)
正如其他人所述,很遗憾,您需要使用默认服务帐户。
如果在30天内,您可以使用本教程查找并取消删除服务访问权限:阅读本指南以获取https://cloud.google.com/iam/docs/creating-managing-service-accounts#undeleting_a_service_account
您必须通过Google Cloud Console输入命令(其中一个按钮将打开顶部蓝色应用栏右侧的终端)
答案 4 :(得分:-1)
尝试在Firebase设置中选择 Google Cloud Platform(GCP)资源位置。 enter image description here