排查项目删除问题

以下各部分描述了可阻止项目删除的常见错误,以及解决这些错误的方法。如果遇到问题,请尝试使用 Google Cloud CLI 关停项目,并记下收到的所有错误消息。

安全锁

如果项目上有安全锁,则在删除安全锁之前该项目不能删除。如果您对项目拥有 resourcemanager.projects.get 权限,则可以使用 liens list gcloud CLI 命令列出应用于项目的安全锁。

如需详细了解安全锁,请参阅使用安全锁保护项目

Cloud Endpoints

Cloud Endpoints 是特殊资源,被视为某项目的子资源。这可以阻止删除存在端点的项目。

以下示例显示了由于项目下存在端点而导致的删除项目的失败尝试,该操作使用 Google Cloud CLI 进行:

@cloudshell:~ ($project)$ gcloud projects delete $project
Your project will be deleted.

Do you want to continue (Y/n)?  Y

ERROR: (gcloud.projects.delete) FAILED_PRECONDITION: active child resource
- '@type':type.googleapis.com/google.rpc.PreconditionFailure
 violations:
 - description: active child resource
   subject: services/$service
- '@type':type.googleapis.com/google.rpc.ResourceInfo
 resourceName: projects/$project
 resourceType: PROJECT

要解决此问题,请在尝试删除项目之前删除端点

如需了解端点的详细信息,请参阅 Cloud Endpoints 文档

管理项目

如果某个项目被指定为已启用应用的文件夹的管理项目,您将无法直接删除该项目。这可能会阻止删除项目,并显示类似于以下内容的错误消息:

ERROR: (gcloud.projects.delete) FAILED_PRECONDITION: Deletion is not allowed
because this project is the management project for the folder it resides in.

如需解决此问题,您可以在父级文件夹中停用应用管理。停用应用管理功能后,系统会自动删除管理项目。

如需使用 gcloud CLI 停用应用管理,请运行以下命令:

gcloud resource-manager capabilities update folders/FOLDER_ID/capabilities/app-management --no-enable

如需了解如何使用 Google Cloud 控制台停用应用管理功能,请参阅管理文件夹中的应用

针对孤立状态的权宜解决方案

在某些情况下,父级文件夹的应用管理可能看似已停用,但关联的项目仍处于被屏蔽状态,并显示相同的错误。在此场景中,如需解除项目与文件夹的关联,您可以清除 App Hub 边界 CRM 节点。

如需使用 gcloud CLI 清除边界,请运行以下命令:

gcloud alpha apphub boundary update --project=PROJECT_ID --location=global --crm-node=''

共享虚拟私有云

如果项目已启用共享虚拟私有云 (VPC) 或已附加服务项目,则安全锁将阻止该项目的删除。

如需详细了解如何分离服务项目和停用共享 VPC,请参阅取消配置共享 VPC