设置宿主项目(旧版)

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

宿主项目是为现有 App Hub 用户提供支持的旧版应用设置模型。我们建议您为新实现设置已启用应用的文件夹,以定义文件夹级边界。文件夹级边界可让您访问以应用为中心的完整 Google Cloud 功能集,例如 App Design Center 和 Gemini Cloud Assist。如需比较应用管理可用模型之间的主要差异,请参阅 选择应用设置模型

宿主项目和服务项目概览

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

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

准备工作

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

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

    • 服务项目必须与宿主项目位于同一 组织中。
    • 一个服务项目一次只能关联到一个宿主项目。
    • 宿主项目可以充当自己的服务项目来管理自己的资源,但您不能将其作为服务项目关联到任何其他宿主项目。
    • 选择不属于您为应用管理配置的 文件夹的后代的宿主项目和服务项目。这种分离可确保文件夹中的所有资源都使用相同类型的设置模型进行管理。

所需角色

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

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

设置宿主项目

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

控制台

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

  2. 从 App Hub 导航到概览 页面:

    转到“概览”

  3. 点击 Set up App Hub (设置 App Hub)。

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

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

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

  7. 点击继续

  8. Define boundary (定义边界)标签页中,验证您的项目信息。

  9. 点击 Add project (添加项目),将服务项目添加到您的边界,或稍后添加。

  10. 点击继续

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

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

  13. 点击 Grant roles (授予角色),然后点击 Complete (完成)。

稍后,您可以从 IAM 页面向正文授予额外的 IAM 角色。如需了解详情,请参阅 使用 Google Cloud 控制台授予 IAM 角色。

gcloud

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

    激活 Cloud Shell

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

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

    gcloud components update
    
  3. 找到要配置为宿主项目的项目的项目 ID。 Google Cloud

  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. 点击 Add project (添加项目)。

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

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

    Projects in your boundary (边界中的项目)表会显示所选的服务项目。关联过程可能需要一些时间才能完成。

  6. 验证服务项目列表是否完整。

gcloud

  1. 找到项目 ID 要配置为 服务项目的每个项目的 Google Cloud 。
  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. 找到项目 ID的每个 Google Cloud 您配置为宿主和服务项目的项目。

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

    Projects in your boundary (边界中的项目)表会刷新,仅显示仍关联到宿主项目的项目。

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

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

后续步骤