8

我正在尝试设置 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.

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

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

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

4

5 回答 5

13

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

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

于 2018-09-28T21:31:11.373 回答
0

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

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

于 2019-03-31T08:53:00.607 回答
0

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

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

gcloud auth list

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

gcloud projects describe project-name

在您尝试像在这篇文章中那样创建它之前。问题是,如果您对它没有权利,无论它是否存在,您都会得到同样的错误。

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

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

希望有帮助。

于 2018-09-29T19:18:01.367 回答
-1

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

然后你的 CLI 看起来像

> admin_@cloudshell:~/underperformance_notifications (PROJECT_ID)$

于 2020-02-10T15:46:28.993 回答
-4

我想我想通了。

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

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

哎呀。这里没有特别说明: gcloud docs

于 2018-09-28T19:30:42.353 回答