Google cloud platform 删除默认服务帐户后,无法在Dataproc上创建群集

Google cloud platform 删除默认服务帐户后,无法在Dataproc上创建群集,google-cloud-platform,google-cloud-dataproc,Google Cloud Platform,Google Cloud Dataproc,我错误地删除了我项目的默认“服务帐户”{project_id}-compute@developer.gserviceaccount.com 现在,每当我尝试在Data proc上创建群集时,都会出现以下错误: Update failed with following error(s) for project settings: -- Backend Provisioning Error: {compute_component FAILED_PRECONDITION: The service is

我错误地删除了我项目的默认“服务帐户”{project_id}-compute@developer.gserviceaccount.com 现在,每当我尝试在Data proc上创建群集时,都会出现以下错误:

Update failed with following error(s) for project settings: -- Backend Provisioning Error: {compute_component FAILED_PRECONDITION: The service is currently being deactivated and deactivation must complete before activation can occur.};
资源“{project_id}”-compute@developer.gserviceaccount.com找不到“serviceAccount”类型的


是否有一种简单的方法可以解决此问题-而不会丢失项目的任何数据。

为了向遇到此问题的任何其他人澄清,此错误是由于实际删除了服务帐户,而不是简单地从
IAM和Admin
选项下的“项目编辑器”列表中删除它而导致的;对于仅从项目编辑器列表中删除该帐户的任何人,您只需使用普通的“添加成员”将其添加回即可

通常,服务帐户是在启用计算引擎API时创建的,因此目前它只需通过禁用然后通过重新启用计算引擎API即可解决此问题

如果您已经运行了生产功能所依赖的现有计算引擎VM,但如果您删除了服务帐户,那么这些VM可能会出现问题

在那里找到
googlecomputeengineapi
,然后单击“禁用”,并确保在确认提示中单击
disable
按钮,而不是
Cancel
按钮

重新启用计算引擎API时,可能会遇到以下错误:

Update failed with following error(s) for project settings: -- Backend Provisioning Error: {compute_component FAILED_PRECONDITION: The service is currently being deactivated and deactivation must complete before activation can occur.};
但是如果你等几分钟再试一次,它应该可以工作(我在再试之前等了大约3分钟,但所需的等待时间可能会有所不同)。同样,在重新启用Compute API并立即尝试创建新的Dataproc群集后,您可能会遇到以下问题:

Failed to load networks

Access Not Configured. Compute Engine API has not been used in project <project-number> before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/compute_component/overview?project=<project-number> then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.
无法加载网络
未配置访问权限。计算引擎API以前未在项目中使用过或已禁用。通过访问来启用它https://console.developers.google.com/apis/api/compute_component/overview?project= 然后重试。如果您最近启用了此API,请等待几分钟,让操作传播到我们的系统,然后重试。
但正如它所提到的,再次等待几分钟可以让设置传播,它应该可以再次正常加载


一旦计算引擎API被充分重新启用,使得Dataproc的
创建集群
页面在云控制台上工作,您还可以在
IAM和Admin
下再次验证默认计算服务帐户是否再次存在,以及它是否已自动添加为
项目编辑器

只是好奇,您是否通过web UI或使用命令行工具删除服务帐户?web UI试图警告不要删除帐户,并要求键入整个帐户名以进行验证,而不仅仅是一个简单的确认提示,因为如下面的回答所示,修复它可能会很繁琐(尽管我理解有时会略过戏剧性的警告,尤其是当它不清楚到底破坏了什么时:)-如果谷歌有任何官方工具使你的项目很容易被破坏,我们希望在将来为它添加额外的保护。@DennisHuo非常感谢你的详细回复。我通过web UI删除了该帐户。此外,我认为只有“项目所有者”才有权执行此类操作会更好。目前“编辑器”也可以删除。@DennisHuo您是否也知道如何恢复默认的“应用程序引擎服务帐户”:PAh,不幸的是,我认为,由于应用程序引擎的启用与项目创建有关,而不是API启用,所以它不像在API管理器中禁用/重新启用那样容易。如果您有支持合同,您可以尝试联系官方支持团队,看看他们是否可以从内部恢复服务帐户;否则,您可能会更幸运地在下发布一个关于@appspot.gserviceaccount.com app engine服务帐户的新问题,以获取更多app engine特定信息。看起来其他人以前也遇到过类似的意外删除问题,一些答案最初也将其与简单地从项目成员列表中删除相混淆,而不是删除账户本身: