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 看起来像
> 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 Google Compute Platform CLI 冗长