创建项目

项目是 Google Cloud 资源层次结构中的基本操作单元。项目位于文件夹(或组织)与虚拟机和存储空间等资源之间。本页面介绍了如何使用 Cloud Resource Manager API 和 Google Cloud 控制台创建Google Cloud 项目。

项目的主要特征包括:

  • 主要服务容器:项目是基本层,所有Google Cloud 服务 (API) 都在此层启用,并且在此层创建 Compute Engine 实例或 BigQuery 数据集等资源。

  • 信任边界:项目充当隔离层。默认情况下,一个项目中的资源无法访问另一个项目中的资源,从而为不同的应用或环境建立安全边界。

  • 结算单位:项目是企业在整个组织中跟踪、整理和分隔费用的主要方式。

  • 政策附加点:虽然政策通常从文件夹继承,但项目级是向开发者和服务账号授予特定权限(Identity and Access Management (IAM))以执行日常任务的最常见位置。

准备工作

在资源层次结构概览中了解项目资源。如需有关设置资源层次结构的指导,请参阅确定 Google Cloud 着陆区的资源层次结构。

您的项目使用以下标识符:

  • 项目名称:人类可读的项目名称。

    项目名称必须符合以下要求:

    • 长度必须为 4 到 30 个字符。
    • 可以包含字母、数字、英文单引号、连字符、空格或英文感叹号。
    • 必须以字母或数字结尾。

    任何 Google API 都不会使用项目名称。您可以在项目创建期间或之后随时修改项目名称。项目名称不必是唯一的。

  • 项目 ID:项目的全局唯一标识符。

    项目 ID 是一个唯一字符串,用于将您的项目与 Google Cloud中的所有其他项目区分开来。输入项目名称后,Google Cloud 控制台会生成一个唯一的项目 ID,其中可以包含字母、数字和连字符。使用生成的项目 ID,但您可以在项目创建期间对其进行修改。项目创建后,项目 ID 将永久保留。

    项目 ID 具有以下要求:

    • 长度必须介于 6 到 30 个字符之间。
    • 只能包含小写字母、数字和连字符。
    • 并且必须以字母开头。
    • 并且不能以连字符结尾。
    • 不得正在使用或之前使用过,包括已删除的项目。
    • 不得包含受限字符串,例如 google 和 ssl。避免在项目 ID 中使用 undefined 和 null 等字符串。

  • 项目编号:项目编号是系统为您的项目自动生成的唯一标识符。如需查找项目编号,请参阅识别项目。

请勿在项目名称、项目 ID 或其他资源名称中包含敏感信息,例如个人身份信息或安全数据。项目 ID 会显示在许多其他 Google Cloud资源的名称中。引用项目或其资源会公开项目 ID 和资源名称。

创建项目

您必须拥有 resourcemanager.projects.create 权限才能创建项目。此权限包含在 Project Creator 角色 (roles/resourcemanager.projectCreator) 等角色中。

默认情况下,系统会向新组织资源的整个网域以及免费试用用户授予 Project Creator 角色。

如需了解如何向个人授予该角色并限制组织资源范围的访问权限,请参阅管理默认组织角色页面。

如果您未指定父资源,则系统会根据用户账号的网域自动选择父资源(如果适用)。

您可以使用 Google Cloud 控制台、Google Cloud CLI 或 projects.create() 方法创建新项目。

控制台

如需创建新项目,请执行以下操作:

  1. 前往 Google Cloud 控制台中的管理资源页面。

    转到“管理资源”

    其余步骤会显示在 Google Cloud 控制台中。

  2. 点击创建项目。
  3. 在随即显示的新建项目窗口中,输入项目名称并选择适用的结算账号。项目名称只能包含字母、数字、英文单引号、连字符、空格或英文感叹号,且长度必须介于 4 到 30 个字符之间。
  4. 在父级资源框中输入父级组织或文件夹资源。该资源将是新项目的分层父级。 如果可以选择无组织,那么您也可以选择该选项,将新项目作为其自身资源层次结构的顶层进行创建。
  5. 输入完新项目的详细信息后,点击创建。

gcloud

  1. 在 Google Cloud 控制台中,激活 Cloud Shell。

    激活 Cloud Shell

    Cloud Shell 会话随即会在 Google Cloud 控制台的底部启动,并显示命令行提示符。Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境。该会话可能需要几秒钟时间来完成初始化。

  2. 如需创建新项目,请使用 gcloud projects create 命令:

    gcloud projects create PROJECT_ID
    

    其中 PROJECT_ID 是您要创建的项目的 ID。项目 ID 必须以小写字母开头,只能包含 ASCII 字母、数字和连字符,并且长度必须介于 6 到 30 个字符之间。

    如需创建以组织资源或文件夹为父级的项目,请使用 --organization 或 --folder 标志。由于一个资源只能有一个父级,因此您只能使用其中一个标志:

    gcloud projects create PROJECT_ID --organization=ORGANIZATION_ID
    
    gcloud projects create PROJECT_ID --folder=FOLDER_ID
    

REST

使用 projects.create() 方法创建新项目时,您不能在项目 ID 中使用某些特定字词,例如,google、null、undefined 和 ssl。 如果您使用受限字词,请求会返回 INVALID_ARGUMENT 错误。

以下请求仅会创建项目,而不会自动将其与结算账号关联。您可以使用 projects.updateBillingInfo 方法设置或更新与项目关联的结算账号。

创建项目请求:

POST https://cloudresourcemanager.googleapis.com/v3/projects/
Authorization: *************
Content-Type: application/json

{
    "projectId": "our-project-123",
    "name": "my project",
    "labels": {
      "mylabel": "prod"
    }
}

创建项目响应:

{
    "name": "operations/pc.123456789",
}

获取操作请求:

GET https://cloudresourcemanager.googleapis.com/v3/operations/pc.123456789
Authorization: *************
Content-Type: application/json

获取操作响应:

{
    "name": "operations/pc.123456789",
    "done": true,
    "response": {
        "@type": "type.googleapis.com/google.cloudresourcemanager.v3.Project",
        "projectNumber": "464036093014",
        "projectId": "our-project-123",
        "lifecycleState": "ACTIVE",
        "name": "my project",
        "labels": {
        "mylabel": "prod"
        },
    "createTime": "2016-01-07T21:59:43.314Z"
    }
}

在创建项目期间添加标记

标记提供了一种为资源创建注解的方法。您可以在创建项目时添加标记。添加标记时,您必须分配 Tag User 角色。如需详细了解分配给此角色的权限,请参阅管理资源上的标记。 您只能通过以下方式之一添加标记键值对的命名空间:

gcloud

如需在项目创建期间添加标记,请运行以下命令:

gcloud projects create PROJECT_ID --organization=ORGANIZATION_ID --tags=KEY_VALUE_PAIRS

替换以下内容:

  • PROJECT_ID 是项目的唯一标识符。
  • ORGANIZATION_ID 是组织的唯一标识符。
  • KEY_VALUE_PAIRS 是您可以分配给资源的键值对的逗号分隔列表。以逗号分隔的键值对的示例如下:123/environment=production, 456/create=testresource。在此示例中,123 和 456 是定义了相应标记键的组织或文件夹资源的唯一标识符 (ID)。

REST

以下代码段是一个 JSON 请求,用于创建项目并向其添加标记。

  POST https://cloudresourcemanager.googleapis.com/v3/projects/
  Authorization: *************
  Content-Type: application/json

  {
    "projectId": "our-project-456",
    "name": "my project",
    "parent": "organizations/123",
    "tags": {
      "key": "123/environment"
      "value": "production"
    },
"tags": {
      "key": "123/costCenter"
      "value": "marketing"
  }
}

使用标记指定项目环境

您可以使用标记,根据项目所处的环境(例如生产、预演或开发)直观地区分项目。这有助于防止错误,并在您在敏感环境中工作时提高警惕。当选择具有特定标记键值对的项目时,Google 会在 Google Cloud 控制台项目选择器中为该项目添加指示图标。此指示标记会提醒您,任何更改都可能会影响关联的生产环境应用或非生产环境应用。标记可以由项目继承,也可以直接在项目上设置。

如需使用此功能,请执行以下操作:

  1. 创建名为 environment 的标记键。
  2. 为所用的环境类别创建标记值。支持以下值,这些值会映射到控制台的项目选择器中的相应标记:
    • Prod:Prod、prod、Production、production
    • 开发者:Dev、dev、Development、development
    • 测试:Test、test、Testing、testing、QA、qa、Quality assurance、quality assurance
    • 预演:Staging、staging、Stage、stage
  3. 通过创建标记绑定,将适当的标记附加到您的项目。

如果项目有多个环境标记(例如,一个继承自文件夹,一个直接位于项目上),系统会使用最具体的标记来确定徽章。

使用服务账号创建项目

您可以使用服务账号自动创建项目。与用户账号一样,服务账号也可以获得在组织资源中创建项目的权限。使用服务账号时,您无法在组织资源外部创建项目,并且必须在创建项目时指定父资源。 服务账号可以使用 gcloud CLI 或 projects.create() 方法创建新项目。

管理项目配额

任何用户或服务账号可以创建的项目数量是有限的。如果您在组织资源之外创建项目,则系统会使用您用户账号的配额。如果您要在组织资源中创建项目,系统会检查您的用户账号和组织资源的配额。如果其中一个有剩余配额,则可以创建项目。

如果配额中的剩余项目少于 30 个,新建项目页面上将出现一条通知,显示配额中剩余的项目数量。达到项目配额上限后,您必须申请提高项目配额上限,才能创建更多项目。或者,您也可以在“管理资源”页面中安排在 30 天后删除部分项目。 用户软删除的项目会计入您的配额。这些项目会在 30 天后被完全删除。

如需为组织配额中的项目申请额外容量,请执行以下操作:

  1. 前往配额和系统限制页面。

    进入“配额和系统限制”

  2. 在资源选择器中,选择要为其增加项目配额的组织。

  3. 在过滤条件选项中,选择指标,然后输入 cloudresourcemanager.googleapis.com/projects_count。

  4. 选择 Cloud Resource Manager API,点击 更多操作,然后选择 修改配额。

  5. 在配额更改对话框中,输入新的配额值和说明,然后点击下一步。

  6. 输入您的联系信息,然后点击提交申请。

您会收到一封电子邮件,确认已收到您的申请。如果您需要进一步的帮助,请回复该电子邮件。审核完成后,您会收到电子邮件通知,告知您申请是否获得了批准。

如果您没有组织,但想为配额中的项目申请更多容量,请使用申请增加项目配额表单。

如需详细了解配额及其用途,请参阅免费试用项目配额请求支持页面。如需详细了解结算报告,请参阅结算报告支持页面。

后续步骤