通过宿主项目设置 App Hub

本页介绍了如何设置宿主项目,以将服务和工作负载分组为 App Hub 应用。

宿主项目是现有 App Hub 用户支持的设置模型。不过,我们建议使用启用应用的文件夹来为新实现设置 App Hub。已启用应用的文件夹可提供对以应用为中心的完整 Google Cloud 功能集(例如应用设计中心和 Gemini Cloud Assist)的访问权限。如需比较可用的 App Hub 设置模型之间的主要区别,请参阅选择 App Hub 设置模型

宿主项目和服务项目概览

宿主项目是您指定的标准 Google Cloud 项目,用于将受支持的资源分组为 App Hub 应用。您可以手动将其他项目(称为服务项目)关联到此宿主项目,以便 App Hub 可以发现这些项目中的服务和工作负载并注册它们。

App Hub 中的宿主项目和服务项目模型与共享 VPC 使用的模型不同。您无法将共享 VPC 宿主项目及其关联的服务项目用于 App Hub。在 App Hub 中,宿主项目和服务项目用于从逻辑上对应用资源进行分组,而不是用于共享 VPC 网络。

准备工作

在将 Google Cloud 项目配置为应用的宿主项目和服务项目之前,您必须完成以下步骤:

  1. 确定要用作宿主项目的 Google Cloud 项目。您可以使用现有项目,也可以创建新项目
  2. 确定要作为服务项目关联到宿主项目的 Google Cloud 项目。您必须确定包含您打算注册到 App Hub 应用的服务和工作负载的所有项目。应用中心无法看到其他项目中的资源。对于服务项目,请考虑以下方面:

    • 服务项目必须与宿主项目位于同一组织中。
    • 一个服务项目一次只能关联到一个宿主项目。
    • 宿主项目可以充当自己的服务项目来管理自己的资源,但您无法将其作为服务项目关联到任何其他宿主项目。

所需的角色

如需获得将服务项目附加到宿主项目所需的权限,请让您的管理员为您授予宿主项目以及您要附加的每个服务项目的 App Hub Admin (roles/apphub.admin) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

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

设置宿主项目

请按以下步骤将项目配置为宿主项目:

控制台

  1. 在 Google Cloud 控制台的欢迎页面中,使用项目选择器选择要配置为宿主项目的项目。

    前往“欢迎”页面

  2. Enable the required API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

gcloud

  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. 找到要配置为宿主项目的 Google Cloud 项目的项目 ID

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

    gcloud config set project HOST_PROJECT_ID
    

    HOST_PROJECT_ID 替换为您要配置为宿主项目的项目的 ID。

  5. 在宿主项目中启用 App Hub API

    gcloud services enable apphub.googleapis.com \
        --project=HOST_PROJECT_ID
    

关联服务项目

将包含要分组为 App Hub 应用的服务和工作负载的服务项目关联到宿主项目:

控制台

  1. 在 Google Cloud 控制台的欢迎页面中,使用项目选择器选择宿主项目。

    前往“欢迎”页面

  2. 前往 App Hub 设置页面:

    前往“设置”

  3. 点击关联项目

  4. 通过以下任一方式选择要关联到宿主项目的服务项目:

    • 从项目列表中,选中要附加为服务项目的项目的复选框。
    • 过滤项目名称并选中其复选框。
  5. 点击选择

    关联的服务项目表格会显示所选的服务项目。

  6. 点击关闭

gcloud

  1. 找到您要配置为服务项目的每个 Google Cloud 项目的项目 ID
  2. 关联每个服务项目:

    gcloud apphub service-projects add SERVICE_PROJECT_ID \
        --project=HOST_PROJECT_ID
    

    替换以下内容:

    • SERVICE_PROJECT_ID:要关联的服务项目的 ID。
    • HOST_PROJECT_ID:宿主项目的 ID。
  3. 对于要附加到宿主项目的每个服务项目,重复执行上述流程。

分离服务项目需要移除连接。如需了解详情,请参阅移除服务项目

分配 App Hub 角色和权限

按照以下步骤在宿主项目和服务项目中向 App Hub 用户授予适当的 App Hub 角色和权限

控制台

  1. 在 Google Cloud 控制台的欢迎页面中,使用项目选择器选择宿主项目。

    前往“欢迎”页面

  2. 转到 IAM 页面:

    转到 IAM

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

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

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

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

  7. 在您附加到宿主项目的每个 App Hub 服务项目中,重复上述流程,向同一用户授予相同的角色。

gcloud

  1. 找到您配置为宿主项目和服务项目的每个 Google Cloud 项目的项目 ID。

  2. 向宿主项目中的主账号授予访问权限:

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

    替换以下内容:

    • HOST_PROJECT_ID:宿主项目的 ID。
    • EMAIL_ADDRESS:必须在宿主项目中获得 App Hub 访问权限的主账号的电子邮件地址。此值的格式必须为 username@yourdomain,例如 my.user@example.com
    • ROLE_NAME:您要分配给主账号的 App Hub IAM 角色,例如 roles/apphub.admin
  3. 在您附加到宿主项目的每个 App Hub 服务项目中,向同一用户授予相同的角色:

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

    SERVICE_PROJECT_ID 替换为您要授予访问权限的服务项目的 ID。

设置 VPC Service Controls

如果您想使用 VPC Service Controls 边界来保护应用,请先将 App Hub 主机和服务项目添加到边界,然后再创建应用。如需了解详情,请参阅将 VPC Service Controls 与 App Hub 搭配使用

您现在可以将现有资源注册到应用

可选:配置指标范围

如需在 Cloud Monitoring 中查看宿主项目内应用的系统指标,请将关联的服务项目添加到宿主项目的指标范围。宿主项目用作时序数据的范围项目,可用于绘制数据图表和监控数据。如需了解详情和详细的配置说明,请参阅配置指标范围使用 API 配置指标范围

移除服务项目

您可以修改服务项目附件,以便将不同的服务和工作负载分组到应用中。您可以将更多服务项目关联到宿主项目,也可以按照以下步骤从宿主项目移除服务项目关联:

控制台

  1. 在 Google Cloud 控制台的欢迎页面中,使用项目选择器选择宿主项目。

    前往“欢迎”页面

  2. 前往 App Hub 设置页面:

    前往“设置”

  3. 选中要从宿主项目中移除的服务项目对应的复选框。

  4. 点击分离项目

    关联的服务项目表会刷新,仅显示仍与宿主项目关联的项目。

gcloud

  1. 找到要从宿主项目中移除的每个服务项目的项目 ID。
  2. 移除每个服务项目:

    gcloud apphub service-projects remove SERVICE_PROJECT_ID \
        --project=HOST_PROJECT_ID
    

    替换以下内容:

    • SERVICE_PROJECT_ID:要移除的服务项目的 ID。
    • HOST_PROJECT_ID:宿主项目的 ID。
  3. 对于要从宿主项目中移除的每个服务项目,重复执行上述流程。

从宿主项目中移除服务项目时,如果您之前配置了指标范围,请考虑同时从宿主项目的指标范围中移除该服务项目。如需了解详情,请参阅从指标范围中移除项目

后续步骤