我正在尝试将新磁盘附加到现有实例。
我可以创建磁盘,但是,当我尝试附加它时,它失败并显示以下错误:
未找到类型为“serviceAccount”的资源“xyz-compute@developer.gserviceaccount.com”。
是什么阻止了我,我该如何添加磁盘?
答案 0 :(得分:1)
John Hanley 要求的信息非常有助于缩小问题范围并准确回答您的问题,但是,如果是这种情况,通常会在删除 Compute Engine 默认服务帐户时显示该错误消息您有 3 种可能的选择:
a) 如果服务帐户在不到 30 天前被删除,仍然可以使用以下命令恢复它:
gcloud beta iam service-accounts undelete ACCOUNT_ID
该命令的输出应如下所示:
restoredAccount:
email: sa-name@project-id.iam.gserviceaccount.com
etag: BwWWE7zpApg=
name: projects/project-id/serviceAccounts/sa-name@project-id.iam.gserviceaccount.com
oauth2ClientId: '123456789012345678901'
projectId: project-id
uniqueId: 'account-id'
您可以按照步骤 here 进行恢复。
b) 如果已超过 30 天且无法取消删除,则您必须创建一个新的服务帐户并将其设置为默认的 Compute Engine 服务帐户。执行此操作的步骤是:
您可以通过云控制台导航到 IAM -> 服务帐户页面并单击“+ 创建服务帐户”来完成此操作。或者,如果您更喜欢使用 gcloud 命令,则可以使用以下命令创建一个新帐户:
gcloud iam service-accounts create <NEW-SA-ACCT-NAME> --display-name="Compute Engine default service account"
gcloud iam service-accounts list
gcloud alpha compute --project=peya-data-ops-pro project-info set-default-service-account --service-account=<NEW-SA-ACCT-NAME-EMAIL>
注意:此命令目前在 ALPHA 中,如有更改,恕不另行通知。如果尽管指定了正确的项目,此命令仍失败并显示 API 权限错误,则您可能正在尝试使用仅限邀请的早期访问许可名单访问 API,如here 所述。
c) 作为最后一个选项,只要您没有在 Compute Engine 中运行任何其他资源或者您不介意丢失这些资源,您可以按照步骤 here 禁用 Compute Engine 服务然后在 this guide 之后重新启用它,这将重新创建默认 SA,您将能够完成所需的过程。