设置单个项目

本文档介绍了如何设置单个 Google Cloud 项目来管理应用。此配置也称为“单项目边界”

在此设置中, Google Cloud 项目配置为管理其自己的应用和组件,充当独立的管理项目。如果您的所有应用组件都位于此单个项目中,那么此方法是开始管理应用的最快方式。App Hub 会自动发现项目中的所有受支持资源,以便您将这些资源整理到应用中。

限制

与文件夹级边界相比,单项目边界支持的功能有所不同。App Hub、Application Design Center 和应用监控完全支持单个项目,但其他以应用为中心的 Google Cloud 服务(例如 Cloud Hub 和 Gemini Cloud Assist)需要文件夹级边界。

如需比较单项目级模型和文件夹级模型的功能支持情况,请参阅按边界类型划分的功能支持情况

准备工作

选择要用于管理应用的 Google Cloud 项目。此项目将充当独立的管理项目。您可以使用现有项目,也可以创建新项目

所需的角色

如需获得配置单个项目以进行应用管理所需的权限,请让管理员向您授予您要配置为独立管理项目的项目的以下 IAM 角色:

  • 管理项目中的资源、权限和结算: 项目所有者 (roles/owner)
  • 管理项目中的所有应用组件: App Hub Admin (roles/apphub.admin)

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

在项目上启用应用管理功能

此操作会将项目配置为独立管理项目,并为应用元数据和配置启用必需的 API。该项目随后会成为已启用应用的项目。

如需在单个项目中启用应用管理功能,请按以下步骤操作:

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. 确保已安装最新版本的 Google Cloud CLI:

    gcloud components update
    
  3. 查找项目 ID

  4. 将项目设置为命令的默认项目:

    gcloud config set project PROJECT_ID
    

    PROJECT_ID 替换为相应项目的 ID。

  5. 启用 App Hub API:

    gcloud services enable apphub.googleapis.com \
        --project PROJECT_ID
    
  6. 将项目附加到自身以创建应用管理边界:

    gcloud alpha apphub boundary update \
        --crm-node="projects/$(gcloud projects describe PROJECT_ID --format='value(projectNumber)')" \
        --project=PROJECT_ID \
        --location=global
    

    此命令会将项目配置为自己的管理项目,从而让应用中心自动发现其中的所有受支持的资源

  7. 确认附件状态:

    gcloud alpha apphub boundary describe \
        --project=PROJECT_ID \
        --location=global
    

    您将获得类似于以下示例的输出:

    name: projects/PROJECT_ID/locations/LOCATION/boundary
    crmNode: projects/PROJECT_NUMBER
    createTime: 2025-08-28T19:04:47Z
    updateTime: 2025-08-28T19:04:47Z
    type: AUTOMATIC
    

    PROJECT_NUMBER 是与您的项目 ID 对应的项目编号。

  8. 完成管理项目的配置后,应用管理所需的 API 便会启用,您可以开始使用 App Hub 将服务和工作负载分组到应用中。(可选)查看推荐的 API,以获取对高级功能的访问权限。

    分配 App Hub 角色和权限

    如需允许用户使用 App Hub 发现、注册和管理此项目中的应用组件,您需要向他们授予相应的 App Hub 角色和权限

    请按照以下步骤操作:

    控制台

    1. 在 Google Cloud 控制台中,使用项目选择器选择管理项目。

    2. 前往 IAM 页面:

      转到 IAM

    3. 点击 授予访问权限。 此时会打开授予访问权限窗格。

    4. 新主账号字段中,输入您要向其授予 App Hub 访问权限的主账号的电子邮件地址。

    5. 点击选择角色,然后在过滤条件字段中输入 App Hub

    6. 选择您打算分配给相应主账号的 App Hub IAM 角色,然后点击保存

    gcloud

    1. 向管理项目中的主账号授予访问权限:

      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member='user:EMAIL_ADDRESS' \
          --role='ROLE_NAME'
      

      替换以下内容:

      • PROJECT_ID:管理项目的 ID。
      • EMAIL_ADDRESS:必须获得 App Hub 访问权限的主账号的电子邮件地址。此值必须采用 username@yourdomain 格式,例如 my.user@example.com
      • ROLE_NAME:您要分配给主账号的 App Hub IAM 角色,例如 roles/apphub.admin

    更改应用管理边界

    如果您想更改定义单项目边界的项目,请在旧项目上停用应用管理,并在新项目上启用应用管理。您的应用数据不会迁移,您必须在新项目中重新创建应用。

    如需从单项目边界迁移到文件夹级边界,请设置已启用应用的文件夹。此操作会在文件夹中配置新的管理项目。您需要在新的管理项目中重新创建应用。

    在项目中停用应用管理功能

    如果您不再希望在 App Hub 应用中管理项目的资源,可以停用该项目的应用管理功能。

    当您在项目上停用应用管理功能时,该项目会从其应用管理边界分离。 应用中的服务和工作负载会继续存在,但其注册状态会更改为“已分离”。如果您决定重新启用项目中的应用管理功能,App Hub 可以重新发现您的应用、服务和工作负载,并在基础资源仍然存在的情况下更新注册状态。

    如需在单个项目上停用应用管理,请按照以下步骤操作:

    1. In the Google Cloud console, activate Cloud Shell.

      Activate Cloud Shell

      At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

    2. 确保已安装最新版本的 Google Cloud CLI:

      gcloud components update
      
    3. 查找项目 ID

    4. 将项目设置为命令的默认项目:

      gcloud config set project PROJECT_ID
      

      PROJECT_ID 替换为相应项目的 ID。

    5. 从其边界分离项目以停用应用管理:

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

      此命令会更新边界资源并移除附件,从而针对相应项目停用应用管理。

    6. 通过描述边界来确认分离:

      gcloud alpha apphub boundary describe \
          --project=PROJECT_ID \
          --location=global
      

      输出不包含 crmNode 字段,这确认了项目已停用应用管理。

    7. (可选)删除项目中的所有应用,然后停用 App Hub API(如果您不再在此项目中使用应用功能):

      gcloud services disable apphub.googleapis.com \
          --project=PROJECT_ID
      
    8. 后续步骤