本文档介绍了如何在 App Hub 中设置宿主项目,以及如何 创建多项目边界。
宿主项目是为现有 App Hub 用户提供支持的旧版应用设置模型。我们建议您为新实现设置已启用应用的文件夹,以定义文件夹级边界。文件夹级边界可让您访问以应用为中心的完整 Google Cloud 功能集,例如 App Design Center 和 Gemini Cloud Assist。如需比较应用管理可用模型之间的主要差异,请参阅 选择应用设置模型。
宿主项目和服务项目概览
宿主项目是指您将其他项目关联到的 Google Cloud 项目,这些项目包含您要分组为 App Hub 应用的服务和 工作负载。您关联到宿主项目的项目称为 服务项目。宿主项目和服务项目的关联定义了多项目 边界。
宿主项目可以通过关联到自身来直接管理自己的资源。不过,对于单项目设置,我们建议使用 单项目方法。
准备工作
在将 Google Cloud 项目设置为宿主项目并关联服务项目之前,请完成以下步骤:
- 确定要用作宿主项目的 Google Cloud 项目。您可以使用现有项目,也可以 创建新项目。
确定要作为服务项目关联到宿主 项目的 Google Cloud 项目。您必须确定包含您打算注册到 App Hub 应用的服务和工作负载的所有项目。App Hub 将无法看到其他项目中的资源。服务项目具有以下要求:
所需角色
如需获得将服务项目关联到宿主项目所需的权限,请让您的管理员为您授予宿主项目以及您要关联的每个服务项目的 App Hub Admin (roles/apphub.admin) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
您也可以通过自定义 角色或其他预定义 角色来获取所需的权限。
设置宿主项目
如需将 Google Cloud 项目配置为宿主项目,请按以下步骤操作:
控制台
在 Google Cloud 控制台中,使用项目选择器选择您的项目。
从 App Hub 导航到概览 页面:
点击 Set up App Hub (设置 App Hub)。
在 Enable App Hub (启用 App Hub)页面中,选择 Full setup (完整设置)以创建多项目边界。
记下项目名称和 ID。此信息用于标识宿主项目,您将使用这些值来授予访问权限。
查看要启用的 API 列表。 某些 API 会产生相关费用。 详细了解 API 的费用 或点击每个 API 以查看相关费用。
点击继续 。
在 Define boundary (定义边界)标签页中,验证您的项目信息。
点击继续 。
在 Grant access (授予访问权限)标签页中,为项目中的管理员选择适当的 IAM 角色和权限 。 如需查看跨 Google Cloud 产品的推荐应用中心角色列表,请参阅 向用户授予应用中心角色。
在 New principals (新主账号)框中,输入应具有对项目中以应用为中心的任务的管理权限的用户、群组或服务账号。
点击 Grant roles (授予角色),然后点击 Complete (完成)。
稍后,您可以从 IAM 页面向正文授予额外的 IAM 角色。如需了解详情,请参阅 使用 Google Cloud 控制台授予 IAM 角色。
gcloud
-
在 Google Cloud 控制台中,激活 Cloud Shell。
Cloud Shell 会话随即会在控制台的底部启动,并显示命令行提示符。 Google Cloud Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境 。该会话可能需要几秒钟来完成初始化。
确保已安装最新版本的 Google Cloud CLI:
gcloud components update找到要配置为宿主项目的项目的项目 ID。 Google Cloud
将宿主项目设置为命令的默认项目:
gcloud config set project HOST_PROJECT_ID将
HOST_PROJECT_ID替换为要配置为宿主项目的项目的 ID。在 宿主项目中启用App Hub API:
gcloud services enable apphub.googleapis.com \ --project=HOST_PROJECT_ID
添加服务项目
将服务项目关联到宿主项目,以将其添加到您的 应用管理边界。
如需将服务项目关联到宿主项目并创建多项目边界,请按以下步骤操作:
控制台
在 Google Cloud 控制台中,使用项目选择器选择宿主项目。
从 App Hub 导航到边界设置 页面:
点击 Add project (添加项目)。
通过以下任一方式选择要关联到宿主项目并添加到边界的服务项目:
- 从项目列表中,选中要作为服务项目关联的项目的复选框。
- 过滤项目名称并选中其复选框。
点击选择 。
Projects in your boundary (边界中的项目)表会显示所选的服务项目。关联过程可能需要一些时间才能完成。
验证服务项目列表是否完整。
gcloud
- 找到项目 ID 要配置为 服务项目的每个项目的 Google Cloud 。
关联每个服务项目:
gcloud apphub service-projects add SERVICE_PROJECT_ID \ --project=HOST_PROJECT_ID替换以下内容:
SERVICE_PROJECT_ID:要关联的服务项目的 ID。HOST_PROJECT_ID:宿主项目的 ID。
针对要关联到宿主项目的每个服务项目重复执行上一个过程。
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 角色和权限,请按以下 步骤操作:
控制台
在 Google Cloud 控制台中,使用项目选择器选择宿主项目。
导航到 IAM 页面:
点击 授予访问权限。此时会打开授予访问权限 窗格。
在新正文 字段中,输入您要向其授予 App Hub 访问权限的正文的电子邮件地址。
点击选择角色 ,然后在过滤条件 字段中输入 App Hub。
选择您打算分配给主账号的 App Hub IAM 角色 ,然后点击保存。
在您关联到宿主项目的每个 App Hub 服务项目中,重复执行上一个过程,以向同一用户授予相同的角色。
gcloud
找到项目 ID的每个 Google Cloud 您配置为宿主和服务项目的项目。
授予宿主项目中的正文访问权限:
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。
在您关联到宿主项目的每个 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 配置指标范围。
移除服务项目
将服务项目与宿主项目分离,以将其从您的 应用管理边界中移除。
如需将服务项目与宿主项目分离,请按以下步骤操作:
控制台
在 Google Cloud 控制台中,使用项目选择器选择宿主项目。
从 App Hub 导航到边界设置 页面:
选中要与宿主项目分离并从边界中移除的服务项目的复选框。
点击分离项目 。
Projects in your boundary (边界中的项目)表会刷新,仅显示仍关联到宿主项目的项目。
验证服务项目列表是否已更新。
gcloud
- 找到项目 ID 要从宿主项目中移除的每个服务项目。
移除每个服务项目:
gcloud apphub service-projects remove SERVICE_PROJECT_ID \ --project=HOST_PROJECT_ID替换以下内容:
SERVICE_PROJECT_ID:要移除的服务项目的 ID。HOST_PROJECT_ID:宿主项目的 ID。
针对要从宿主项目中移除的每个服务项目重复执行上一个过程。
从宿主项目中移除服务项目时,如果您之前 配置了指标范围,请考虑同时将其从宿主项目的指标范围中移除 。如需了解详情,请参阅 从指标范围中移除项目。