本文档介绍了如何设置启用应用的文件夹,以便在Google Cloud上构建、运行和管理 App Hub 应用。本文档适用于设置和管理 App Hub 应用的人员。
概览
Google Cloud 提供了一种以应用为中心的方法来部署和管理资源。您可以将应用作为一个整体进行管理,而无需专注于单个基础架构组件。如需详细了解这种以应用为中心的模型及其资源组织,请参阅以应用为中心的 Google Cloud。
以应用为中心体验的核心是 App Hub 应用。应用是协同工作以提供特定业务功能的资源的逻辑分组。这些资源包括:
- 服务:向客户端公开功能的网络或 API 接口,例如负载均衡器的转发规则。
- 工作负载:运行二进制部署并执行不同业务功能的计算资源,例如代管式实例组 (MIG) 或 Google Kubernetes Engine (GKE) 部署。
什么是已启用应用的文件夹?
已启用应用的文件夹是 Google Cloud 资源层次结构中已专门针对应用管理进行了配置的文件夹。此文件夹用作应用的应用管理边界,并包含一个管理项目,用于存储应用的元数据和配置。您可以在文件夹内的一个或多个项目中设计、配置、测试、验证和部署 App Hub 应用。
已启用应用的文件夹可通过以下方式简化应用管理:
- 整理组件:它们将 App Hub 中定义的相关服务和工作负载分组到一个应用中。
- 提供集中式监控和管理:您可以监控和管理文件夹级应用的总体健康状况和性能,而无需跟踪不同项目或产品中的各个组件。
- 简化管理:通过将文件夹指定为已启用应用,您可以创建文件夹级边界,从而简化组织内应用的创建和管理。
- 提供以应用为中心的视图:它们将重点从单个资源转移到应用本身,从而提供应用性能的整体视图。
如需详细了解文件夹级边界,以及项目和文件夹在应用管理边界方面的比较,请参阅选择应用设置模型。
管理项目概览
管理项目是已启用应用的文件夹中的Google Cloud 项目,充当所有以应用为中心的元数据的中央代码库。每个文件夹只能包含一个管理项目。管理项目为应用库和 API 提供基础设施,包括结算、配额和访问权限控制。如需详细了解这些 API,请参阅在管理项目上启用 API。
管理项目包含完整的应用模型,其中包括以下内容:
- App Hub 数据:应用的逻辑模型,包括应用与服务和工作负载的关系,以及所有者和严重程度等元数据。
- 应用设计中心数据:用于设计和部署新应用的资源,例如模板、目录和空间。
管理项目还可以发现已启用应用的文件夹的资源层次结构中的资源。如果管理项目被删除,所有这些应用模型数据都会永久丢失。虽然您的底层基础架构(例如 GKE 集群或负载平衡器)保持不变,但其在 App Hub 中的逻辑分组会被永久删除。
配置用于应用管理的文件夹
您可以为新文件夹和现有文件夹启用应用管理功能。我们建议您先在新建的专用文件夹中测试应用管理功能。这样,您便可以安全地进行实验,然后再决定是否将其应用到现有的关键文件夹。
在已启用应用的文件夹中,获得授权的用户可以直接在该文件夹中的应用中汇总来自任何项目的工作负载和服务。
假设资源层次结构如下:
文件夹 F1 包含以下三项内容:
- 项目 P10 和 P11
- 文件夹 F2
文件夹 F2 包含以下两项内容:
- 项目 P20 和 P21
在文件夹 F1 上启用应用管理功能,以创建包含多个文件夹级别的资源的应用。例如,应用可以包含项目 P10 和 P20 中的资源。

如果您仅在文件夹 F2 中启用应用管理功能,则项目 P10 将无法用于创建应用。如需在项目 P10 中创建应用,请将项目 P10 移至文件夹 F2 下。

在规划应用管理策略时,请考虑您的组织结构、团队职责和资源。团队和资源的结构方式会直接影响您使用已启用应用的文件夹的方式。
所需的角色
根据应用生命周期内确定的职责,您和您的用户需要各种角色来配置应用管理流程的各个方面。
如需获得配置启用应用的文件夹所需的权限,请让您的管理员为您授予以下 IAM 角色:
-
启用应用管理功能:
文件夹的父资源的 Folder Admin (
roles/resourcemanager.folderAdmin) -
将结算账号与管理项目相关联:
-
针对管理项目的 Project Billing Manager (
roles/billing.projectManager) -
目标结算账号的 Billing Account User (
roles/billing.user)
-
针对管理项目的 Project Billing Manager (
-
启用推荐的 API:
管理项目的 Service Usage Admin (
roles/serviceusage.serviceUsageAdmin),仅当您想启用其他服务时才需要此角色 -
向用户授予以应用为中心的角色:
管理项目的 Project IAM Admin (
roles/resourcemanager.projectIamAdmin) -
配置可观测性范围:
-
管理项目的 Observability Editor (
roles/observability.editor) -
管理项目的 Logs Configuration Writer (
roles/logging.configWriter) -
针对管理项目以及要添加到指标范围的每个项目的 Monitoring Admin (
roles/monitoring.admin) -
针对管理项目的 Cloud Trace User (
roles/cloudtrace.user) -
管理项目的 App Hub Viewer (
roles/apphub.viewer)
-
管理项目的 Observability Editor (
-
在 Cloud Hub 中查看应用级和项目级数据:
Cloud Hub Operator 角色 (
roles/cloudhub.operator) 在已启用应用的文件夹中
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
启用应用管理功能
借助应用管理,您可以将注意力从单个基础架构组件转移到整个应用。
在文件夹中启用应用管理功能后,该文件夹称为“已启用应用的文件夹”,并且会发生以下情况:
- 项目在文件夹中定义为管理项目。
- 系统会在管理项目中启用所需的 API。
- 管理项目存储应用数据,包括已启用的 API、结算信息、配额和访问权限控制。
如需为文件夹启用应用管理,请执行以下操作:
控制台
选择或创建要配置为启用应用的文件夹 Google Cloud 。如需创建新文件夹,请参阅创建文件夹。
在 Google Cloud 控制台中,打开管理资源页面。
在项目和文件夹列表中,找到要配置的文件夹。
如果文件夹具有
已启用应用的文件夹图标,则表示应用管理功能已启用。在文件夹行中,打开 操作菜单,然后点击设置。
如果文件夹未启用应用管理,应用管理设置会显示未启用。
在启用应用管理区域中,点击创建项目。
系统会打开创建管理项目并启用必需的 API 面板。
查看必需 API 的列表。这些 API 用于管理应用生命周期。对于会产生相关费用的 API,请点击 API 名称详细了解价格。
如需启用应用管理功能,请点击创建项目并启用 API。
系统会在文件夹中创建管理项目。
记下管理项目的名称和 ID。您将使用这些值来授予访问权限。
或者,您也可以使用以下 Google Cloud CLI 命令获取管理项目 ID:
gcloud resource-manager folders describe FOLDER_ID --format="value(managementProject.split('/').slice(-1))"将
FOLDER_ID替换为已启用应用的文件夹的 ID。如需了解详情,请参阅查找项目名称、编号和 ID。
gcloud
-
In the Google Cloud console, 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.
确保已安装最新版本的 Google Cloud CLI:
gcloud components update如需在特定文件夹中启用应用管理,请使用带有
--enable标志的gcloud resource-manager capabilities update命令。gcloud resource-manager capabilities update folders/FOLDER_ID/capabilities/app-management \ --enable将
FOLDER_ID替换为文件夹的 ID。此命令会在指定文件夹中启用应用管理功能,并自动在该文件夹中预配一个新 Google Cloud 项目作为管理项目。
(可选)如需在管理项目中启用推荐的 API,请按照说明在项目中启用 Google Cloud 服务。
Terraform
如需使用 Terraform 在文件夹中启用应用管理,请使用google_resource_manager_capability 资源,例如:
resource "google_folder" "folder" {
display_name = "my-folder"
parent = "organizations/123456789"
deletion_protection = false
}
resource "time_sleep" "wait_60s" {
depends_on = [google_folder.folder]
create_duration = "60s"
}
resource "google_resource_manager_capability" "capability" {
value = true
parent = "${google_folder.folder.name}"
capability_name = "app-management"
depends_on = [time_sleep.wait_60s]
}
此命令可在指定文件夹中启用应用管理功能,并自动在该文件夹中预配一个新 Google Cloud 项目作为管理项目。如需在管理项目中启用推荐的 API 列表,请按照在 Google Cloud 项目中启用 API 服务的说明操作。
创建管理项目并启用必需的 API 后,您就可以开始使用 App Hub 将现有服务和工作负载分组到应用中。不过,我们强烈建议您将结算账号与管理项目相关联,并向用户授予以应用为中心的角色,以便解锁其他以应用为中心的 Google Cloud 产品中的高级功能。通过这些操作,用户可以管理应用部署流程和运营的各个方面,这可能需要不同的角色。
可选:将结算账号与管理项目关联
如需使用以应用为中心的 Google Cloud 高级功能,您必须将有效的结算账号关联到管理项目。例如,关联的结算账号可帮助您执行以下操作:
- 管理超出 App Hub 资源配额的工作负载。
- 使用 App Design Center 创建模板和部署应用。
如需简要了解与应用管理和已启用的 API 相关的潜在费用,请参阅了解费用。
请按以下步骤将有效的结算账号与您的管理项目相关联:
控制台
验证您要用于应用管理的结算账号是否存在。如需创建结算账号,请参阅创建新的自助 Cloud Billing 账号。
在 Google Cloud 控制台中,打开结算页面。
在我的项目标签页中,找到管理项目。
在项目行中,打开 操作菜单,选择更改结算信息,然后选择 Cloud Billing 账号。
如需详细了解如何为项目启用结算功能,请参阅为项目启用结算功能。
gcloud
gcloud billing projects link PROJECT_ID \
--billing-account ACCOUNT_ID
替换以下内容:
PROJECT_ID:管理项目的 ID。ACCOUNT_ID:结算账号的 ID。 结算账号 ID 的格式为0X0X0X-0X0X0X-0X0X0X。
可选:启用推荐的 API
除了管理项目中自动启用的 API 之外,您还可以启用推荐的 API 来支持应用创建。 查看推荐的 API,了解其优势和任何相关费用。
向用户授予以应用为中心的角色
您可以根据用户在应用生命周期内的职责授予相应访问权限。如需了解如何授予不同级别的应用访问权限,请参阅向应用授予权限。
下表提供了常规准则和建议的 IAM 角色,用于在项目级或文件夹级授予不同的以应用为中心的用户职责。下表列出了用于通过 App Hub 和 App Design Center 管理应用以及在 Cloud Hub 中查看数据的角色。
如需详细了解这些角色和其他特定于产品的角色,请参阅相关文档。
| 用户的责任 | IAM 角色 | 在哪里授予角色 |
|---|---|---|
| 平台管理员
为管理项目执行管理员任务。 |
Project IAM Admin (roles/resourcemanager.projectIamAdmin) |
管理项目 |
| 平台工程师
执行 App Hub 和 App Design Center 的管理员任务。 |
|
管理项目 |
| 应用开发者
开发应用。 |
|
管理项目 |
| SRE、运维人员和 Cloud Hub 用户
在 Cloud Hub 中查看应用级和项目级数据。 |
Cloud Hub Operator (roles/cloudhub.operator) |
已启用应用的文件夹 |
配置可观测性范围
可观测性范围决定了 Google Cloud 控制台在何处搜索要显示的遥测数据。每个 Google Cloud 项目都包含一个可观测性范围,用于标识默认日志范围和跟踪记录范围。对于指标数据,项目的指标范围决定了Google Cloud 控制台搜索数据的位置。
如需查看或分析应用的所有遥测数据,请为管理项目配置可观测性范围和指标范围。通过配置这些范围,Cloud Hub 和其他服务可以查找并显示应用的日志、指标和跟踪数据,即使这些数据存储在多个项目中也是如此。
本部分总结了所需的配置。如需了解详细说明,请参阅设置应用监控。下表显示了所需的配置范围。
| 范围组件 | 配置方案 | 主要操作和注意事项 |
|---|---|---|
| 日志范围 | 您可以使用 汇总接收器将组织中的所有日志路由到中央日志存储桶。 |
|
| 您没有组织级汇总接收器,并且已启用应用的文件夹没有嵌套文件夹。 |
|
|
| 您不想使用汇总接收器。 | 在管理项目中配置默认日志范围,以列出应用日志数据的存储位置。 | |
| 指标范围 | 您配置了一个已启用应用的文件夹,其中包含存储您要查看的指标数据的所有项目。 | Google Cloud Observability 会尝试将已启用应用的文件夹中的项目列表与指标范围内的项目列表同步。 只要已启用应用的文件夹中的项目数量不超过指标范围配额,当您在已启用应用的文件夹中添加或移除项目时,Google Cloud Observability 便可让指标范围内的项目列表保持最新状态。 |
| Trace 范围 | 您希望跨多个项目监控应用跟踪记录数据。 |
|
停用应用管理功能
如果您不想再将某个 Google Cloud 文件夹设为启用应用的文件夹,请按以下步骤停用应用管理功能:
如果安全锁正在保护已启用应用的文件夹中的管理项目免遭项目删除,您必须移除该安全锁。如需了解详情,请参阅使用安全锁保护项目。
选择要停用应用管理的 Google Cloud 文件夹。
在 Google Cloud 控制台中,打开管理资源页面。
在项目和文件夹列表中,找到已启用应用的文件夹。
在相应文件夹的行中,打开 操作菜单,然后点击设置。
带有
图标的文件夹已配置为用于应用管理。点击 停用,以停用文件夹中的应用管理功能。
在确认对话框中,在停用字段中输入
Disable。如果您已准备好停用应用管理,请点击停用。
系统会删除相应文件夹中的管理项目。整个应用模型(包括 API 和访问权限控制)也会被删除。