设置宿主项目(旧版)

本文档介绍了如何在 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. 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. 从应用中心前往设置页面:

    前往“设置”

  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. 从应用中心前往设置页面:

    前往“设置”

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

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

后续步骤