设置宿主项目(旧版)

本文档介绍了如何在 App Hub 中设置宿主项目并创建多项目边界

宿主项目是一种旧版应用设置模型,可供现有 App Hub 用户使用。我们建议为新实现设置已启用应用的文件夹,以定义文件夹级边界。文件夹级边界可提供对全套以应用为中心的 Google Cloud 功能的访问权限,例如应用设计中心和 Gemini Cloud Assist。如需比较应用管理可用模型之间的主要区别,请参阅选择应用设置模型

宿主项目和服务项目概览

宿主项目是一个 Google Cloud项目,您可以将包含要分组为 App Hub 应用的服务和工作负载的其他项目关联到该项目。您关联到宿主项目的项目称为服务项目。宿主项目和服务项目的关联定义了多项目边界

宿主项目可以通过附加到自身来直接管理自己的资源。不过,对于单项目设置,我们建议使用单项目方法

准备工作

在将 Google Cloud 项目设置为宿主项目并将其与服务项目相关联之前,请完成以下步骤:

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

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

所需的角色

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

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

设置宿主项目

如需将 Google Cloud 项目配置为主机项目,请按以下步骤操作:

控制台

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

  2. 从 App Hub 前往概览页面:

    转到“概览”页面

  3. 点击设置应用中心

  4. 启用 App Hub 页面中,选择完整设置以创建多项目边界。

  5. 记下项目名称和 ID。此信息用于标识宿主项目,您将使用这些值来授予访问权限。

  6. 查看正在启用的 API 列表。 某些 API 会产生相关费用。 详细了解 API 的费用,或点击每个 API 以查看相关费用。

  7. 点击继续

  8. 定义边界标签页中,验证项目信息。

  9. 点击 添加项目将服务项目添加到边界或稍后添加。

  10. 点击继续

  11. 授予访问权限标签页中,为项目中的管理员选择合适的 IAM 角色和权限。 如需查看Google Cloud 产品中推荐的以应用为中心的角色列表,请参阅向用户授予以应用为中心的角色

  12. 新主账号框中,输入应具有项目中以应用为中心的任务的管理权限的用户、群组或服务账号。

  13. 点击授予角色,然后点击完成

稍后,您可以在 IAM 页面中向主账号授予其他 IAM 角色。如需了解详情,请参阅使用 Google Cloud 控制台授予 IAM 角色

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
    

添加服务项目

通过将服务项目关联到宿主项目,将其添加到应用管理边界

如需将服务项目关联到宿主项目并创建多项目边界,请按以下步骤操作:

控制台

  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. 对于要附加到宿主项目的每个服务项目,重复执行上述流程。

Terraform

如需使用 Terraform 将服务项目关联到宿主项目,请使用 google_apphub_service_project_attachment 资源,例如:

resource "google_apphub_service_project_attachment" "example" {
    service_project_attachment_id = google_project.service_project.project_id
    depends_on = [time_sleep.wait_120s]
}

resource "google_project" "service_project" {
    project_id ="project-1"
    name = "Service Project"
    org_id = "123456789"
    deletion_policy = "DELETE"
}

resource "time_sleep" "wait_120s" {
    depends_on = [google_project.service_project]

    create_duration = "120s"
}

如需将服务项目与宿主项目分离,请参阅移除服务项目

分配 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. 点击分离项目

    边界内的项目表格会刷新,仅显示仍附加到宿主项目的项目。

  5. 验证服务项目列表是否已更新。

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. 对于要从宿主项目中移除的每个服务项目,重复执行上述流程。

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

后续步骤