我正在尝试将新磁盘附加到现有实例。
我可以创建磁盘,但是,当我试图附加它时,它失败了,出现以下错误:
找不到类型为"serviceAccount"的资源"xyz-compute@developer.gserviceaccount.com"。
是什么阻止了我,我该如何添加磁盘?
John Hanley请求的信息将非常有助于缩小问题范围并为您的问题提供准确的响应,但是,该错误消息通常在删除计算引擎默认服务帐户时显示,如果是这种情况,您有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'
你可以按照这里的步骤,以恢复它。
b)如果超过30天且无法删除,您必须创建一个新的服务帐户,并将其设置为默认的计算引擎服务帐户。步骤如下:
- 用您选择的名称创建一个新的服务帐户
您可以通过云控制台导航到IAM ->服务帐户页面,点击"+创建服务帐户"。或者,如果您喜欢使用gcloud命令,您可以使用以下命令创建一个新帐户:
gcloud iam service-accounts create <NEW-SA-ACCT-NAME> --display-name="Compute Engine default service account"
- 通过云控制台服务帐户页面或使用gcloud命令获取与该服务帐户关联的电子邮件id:
gcloud iam service-accounts list
- 一旦你完成了上面的步骤,你可以使用alpha命令将这个新的服务帐户设置为计算引擎默认的服务帐户:
gcloud alpha compute --project=peya-data-ops-pro project-info set-default-service-account --service-account=<NEW-SA-ACCT-NAME-EMAIL>
注意:此命令目前处于ALPHA阶段,可能不另行通知而更改。如果该命令失败,尽管指定了正确的项目,但API权限错误,您可能试图使用仅限邀请的早期访问允许列表访问API,如下所述。
c)作为最后一个选项,只要您没有任何其他资源在Compute Engine中运行,或者您不介意丢失这些资源,您可以按照这里的步骤禁用Compute Engine Service,然后按照本指南重新启用它,这将重新创建默认SA,并且您将能够完成所需的过程。