gcloud cli 无法创建项目 - 您指定的项目 ID 已被另一个项目使用

Posted

技术标签:

【中文标题】gcloud cli 无法创建项目 - 您指定的项目 ID 已被另一个项目使用【英文标题】:gcloud cli cannot create project - The project ID you specified is already in use by another project 【发布时间】:2019-03-04 19:24:21 【问题描述】:

我正在尝试设置 Terraform 以与 GCP 一起使用,但在从 gcloud cli 创建新项目时遇到问题:Terraform Lab

我使用的命令是

gcloud projects create testproject

我一遍又一遍的错误是:

ERROR: (gcloud.projects.create) Project creation failed. The project ID you specified is already in use by another project. Please try an alternative ID.

这是我到目前为止所做的:

    我在 Cloud Identity 中创建了一个“组织”和一个用户 使用我创建的用户在浏览器中登录 GCP 控制台 用户具有“组织管理员”角色 使用家用计算机上配置的 Cloud Shell 或 gcloud,我无法创建新项目。在这两种情况下(云外壳和本地 gcloud 安装),我都能成功执行“gcloud 项目列表”和“gcloud 组织列表”之类的操作 我已尝试使用符合格式要求的不同项目 ID 名称(例如 6-30 个字符、小写字母等)。我还可以确认项目 ID 不存在。 但是,我能够通过 GCP Web 控制台 (https://console.cloud.google.com) 成功创建项目(使用在 gcloud cli 中配置的相同 IAM 帐户) 我已多次尝试“gcloud init”以确保我使用的是正确的 IAM 帐户,以防万一。

这是我尝试从“gcloud init”命令创建新项目时遇到的错误:

Enter a Project ID. Note that a Project ID CANNOT be changed later.
Project IDs must be 6-30 characters (lowercase ASCII, digits, or
hyphens) in length and start with a lowercase letter. vincetest
WARNING: Project creation failed: HttpError accessing 
<https://cloudresourcemanager.googleapis.com/v1/projects?alt=json>: 
response: <'status': '409', 'content-length': '268', 'x-xss
-protection': '1; mode=block', 'x-content-type-options': 'nosniff', 
'transfer-encoding': 'chunked', 'vary': 'Origin, X-Origin, Referer', 
'server': 'ESF', '-content-encoding': 'gzip',
 'cache-control': 'private', 'date': 'Fri, 28 Sep 2018 18:38:11 GMT', 
 'x-frame-options': 'SAMEORIGIN', 'content-type': 'application/json; 
 charset=UTF-8'>, content <
  "error": 
    "code": 409,
    "message": "Requested entity already exists",
    "status": "ALREADY_EXISTS",
    "details": [
      
        "@type": "type.googleapis.com/google.rpc.ResourceInfo",
        "resourceName": "projects/vincetest"
      
    ]
  

>

从网页控制台创建项目工作正常。

【问题讨论】:

gcloud 文档说“请注意,您不能重复使用已删除项目的项目 ID。” 【参考方案1】:

项目 ID 在所有项目中都是唯一的。这意味着如果 任何 用户 曾经 有一个具有该 ID 的项目,则您不能使用它。 testproject 很常见,所以它已经被使用也就不足为奇了。

尝试使用更独特的 ID。一种常见的技术是使用您的组织名称作为前缀。

【讨论】:

【参考方案2】:

这是另一个链接,其中包含有关creating projects 的更多信息。 详细介绍如何在控制台、gcloud、API 和 Python 中执行此操作。

出现的另一个问题:在调用命令时验证您使用的帐户是否正确:

gcloud auth list

如果您尝试使用以下方法检查项目是否存在:

gcloud projects describe project-name

在您尝试像在此 post 中创建它之前。问题是,如果您没有权限,无论是否存在,您都会收到相同类型的错误。

User [user@domain.tld] does not have permission to access project [project-name] (or it may not exist): User is not authorized.

我什至尝试创建一个与另一个不相关组织中的项目同名的新项目。关键似乎是添加任何字母或数字以使其与众不同。

希望对您有所帮助。

【讨论】:

【参考方案3】:

谷歌云收集全球所有与GCP(谷歌云平台)相关的项目

因此,您应该创建一个具有唯一 ID 的项目。

【讨论】:

【参考方案4】:

要使用 Cloudshell 设置您的 Cloud Platform 项目,请使用:gcloud config set project [PROJECT_ID] 将 [PROJECT_ID] 替换为您的项目名称。

然后你的 CLI 看起来像

&gt; admin_@cloudshell:~/underperformance_notifications (PROJECT_ID)$

【讨论】:

【参考方案5】:

我想我明白了。

项目ID后面必须跟一些数字:

gcloud projects create tf-admin-001 --name tf-admin --organization xxxx --set-as-default

天啊。这里没有具体说明: gcloud docs

【讨论】:

这是不正确的。项目名称只需唯一。在末尾添加一些数字是尝试选择唯一项目名称的一种技术。只要您的项目名称是唯一的并且在长度/字符限制范围内并且不使用任何保留字(例如“google”),那么它就会被允许。

以上是关于gcloud cli 无法创建项目 - 您指定的项目 ID 已被另一个项目使用的主要内容,如果未能解决你的问题,请参考以下文章

Gcloud Compute - 虚拟机不断终止

减少 gcloud Google Compute Platform CLI 冗长

我可以完全从 CLI 或脚本创建和配置 GCP 项目 + Firebase 吗?

使用 gcloud 创建 API 密钥?

模仿 AWS CLI / gcloud 命令行参数

如何删除/禁用 gcloud CLI 命令的输出消息