本文档介绍了如何使用已启用应用的文件夹设置 App Hub,以便在 Google Cloud上构建、运行和管理 App Hub 应用。它适用于设置和管理应用中心的人员。
您还可以在宿主项目上设置 App Hub。不过,我们建议您使用已启用应用的文件夹(而非宿主项目)来管理应用,因为已启用应用的文件夹可以访问 Application Design Center 和 Gemini Cloud Assist 等功能。如需详细了解如何在宿主项目中设置 App Hub,请参阅在宿主项目中设置 App Hub。
在已启用应用的文件夹中设置 App Hub 应用后,您可以使用自然语言助理检索有关应用的信息。如需了解详情,请参阅在 Google Cloud 控制台中使用 Gemini Cloud Assist。
服务和工作负载
借助 App Hub,您可以将已启用应用的文件夹的后代 Google Cloud 项目中的资源作为服务和工作负载来使用。将服务和工作负载注册到应用后,您便可以观测和监控这些资源。App Hub 支持全球资源和区域资源。如需详细了解可添加到应用的资源,请参阅 App Hub 支持的资源。
整体设置流程
以下列表总结了设置应用中心的步骤:
- 确定要在应用中包含哪些现有资源,以及这些资源属于哪些项目。如需详细了解如何管理应用,请参阅应用管理。
- 为文件夹启用应用管理功能。
您现在可以管理启用应用的文件夹的所有后代项目中的资源。如果向文件夹中添加了包含应用所需底层资源的新项目,系统会自动为这些项目启用应用管理功能。
请注意以下几点:- 项目必须与启用应用的文件夹位于同一组织中。 将项目附加到已启用应用的文件夹后,如果您想将该项目移至其他组织,则必须迁移该项目。如需了解详情,请参阅在组织资源之间迁移项目。
- 将项目附加到已启用应用的文件夹后,查询已启用应用的文件夹中的服务或工作负载会自动返回附加到该文件夹的所有项目中的所有服务和工作负载。
- 如果启用了应用功能的文件夹被移至其他组织,则所有已注册的服务和工作负载都会分离。
- 将 App Hub 用户指定为 App Hub 管理员、App Hub 编辑者或 App Hub 查看者。
- 创建应用以组织管理多个工作负载和服务。
请注意以下几点:- 确保应用在启用应用功能的文件夹和位置中具有唯一的名称。
- 项目可以附加到包含多个应用的启用应用功能的文件夹,但其各个资源只能注册到一个应用。
- 如果将项目移至其他文件夹或组织,应用将继续存在于已启用应用功能的文件夹中,但其服务和工作负载处于分离状态。
- 查询服务和工作负载并将其注册到您的应用。
创建应用后,您可以查询已启用应用功能的文件夹,以了解可用的服务和工作负载。查询针对已启用应用的文件夹以及附加到已启用应用的文件夹的所有项目运行。该查询还会返回这些项目中的所有服务和工作负载。请注意以下几点:
- 您只能将服务或工作负载注册到单个应用。
- 您必须将特定区域中的服务和工作负载注册到同一区域中的区域级应用或全球应用。以下说明和命令假设所有资源都位于同一区域中。如需了解您可以指定哪些区域,请参阅位置。
- 已注册的服务和工作负载不受底层基础架构资源更新的影响。换句话说,如果您删除充当服务和工作负载的基础资源,App Hub 不会从您的应用中删除关联的工作负载和服务。您必须单独取消注册工作负载或服务。
前提条件
在设置 App Hub 之前,请完成以下任务。
- 确保您拥有所需的 IAM 角色,以便为管理项目启用或创建结算账号。
- 确定要使用哪个现有文件夹,或创建一个新文件夹,以便在该文件夹中启用应用管理功能。如需详细了解如何创建文件夹,请参阅创建文件夹。
- 确保您已确定哪些个人持有 App Hub 的 Identity and Access Management (IAM) 角色:App Hub 管理员、App Hub 编辑者和 App Hub 查看者。如需详细了解角色和权限,请参阅 App Hub 角色和权限。
所需的角色
如需获得修改应用中心资源所需的权限,请让管理员向您授予已启用应用的文件夹的以下 IAM 角色:
-
如需创建和更新应用,以及注册和取消注册服务和工作负载,请执行以下操作:
-
App Hub Admin (
roles/apphub.admin
) -
App Hub Editor (
roles/apphub.editor
)
-
App Hub Admin (
-
如需在文件夹中启用应用管理功能,请执行以下操作:
Folder Admin (
resourcemanager.folderAdmin
) -
如需查看支持应用管理的 Google Cloud 服务中的应用、服务和工作负载及其属性,请使用:
App Hub 管理查看器 (
roles/apphub.appManagementViewer
)
如需详细了解如何在一个位置查看应用的数据,请参阅 Cloud Hub 概览。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
启用应用管理
在此部分中,您将选择一个文件夹,并为该文件夹启用应用管理功能。为文件夹配置应用管理时,启用流程包括以下操作:
- 在文件夹中创建新的管理项目。管理项目是由 Google 创建的项目,您无法移动或删除该项目。一个已启用应用的文件夹只能与一个管理项目相关联。管理项目用于管理与启用应用的文件夹关联的所有后代项目的配额和结算。
- 为支持应用管理的服务(例如 App Hub 和 Gemini Cloud Assist)启用 API。
在 Google Cloud 控制台中,前往 App Hub 页面。
根据以下情形,请按照以下步骤操作:
- 如果您位于未启用应用的 Google Cloud 项目或 Google Cloud文件夹中:
- 点击选择文件夹。
- 在选择文件夹对话框中,选择已启用应用的文件夹。如果您需要有关已启用应用的文件夹的信息,请咨询您的管理员。如果您选择的文件夹未启用应用,并且您拥有 Folder Admin (
resourcemanager.folderAdmin
) IAM 角色,请在该文件夹中启用应用管理。如需了解详情,请参阅在文件夹中启用应用管理和 API。
- 如果您位于已启用应用的 Google Cloud 文件夹中,请在此页面上前往指定 App Hub 用户。
在文件夹中启用应用管理功能会创建一个 Google 拥有的项目,称为管理项目,其格式如下:
FOLDER_DISPLAY_NAME-mp
。管理项目托管已启用应用的文件夹的后代项目,并有助于管理跨项目功能。您现在可以为启用应用的文件夹中的后代项目创建 App Hub 应用。- 如果您位于未启用应用的 Google Cloud 项目或 Google Cloud文件夹中:
可选:您可以创建项目,也可以将项目从其他文件夹移至已启用应用的文件夹。然后,您可以在已启用应用功能的文件夹中创建应用,以管理项目中的服务和工作负载。如需详细了解如何创建项目,请参阅创建项目。 如需详细了解如何移动项目,请参阅移动项目。
指定 App Hub 用户
如果您是项目创建者,则会被授予基本 Owner 角色 (roles/owner
)。默认情况下,此 IAM 角色可提供完全访问大多数Google Cloud 资源所需的权限。
如果您不是项目创建者,则必须向主账号授予项目的必需权限。例如,主账号可以是 Google 账号(针对最终用户)或服务账号(针对应用和计算工作负载)。如需获得完成本教程所需的权限,请让您的管理员为您授予项目的以下 IAM 角色:
控制台
在 Google Cloud 控制台中,前往 IAM 页面。
确保顶部导航栏上的项目选择器显示已启用应用的文件夹。通过 Purview 选择器,您可以了解当前正在查看的组织、文件夹或项目。如果您不在已启用应用的文件夹中,请按以下步骤选择已启用应用的文件夹:
- 在范围选择器中,点击所选选项。
- 在选择资源对话框中,执行以下操作之一:
- 从文件夹列表中,选择
FOLDER_DISPLAY_NAME
文件夹。 - 搜索
FOLDER_DISPLAY_NAME
文件夹,然后选择该文件夹。
- 从文件夹列表中,选择
在 IAM 页面上,点击
授予访问权限。 授予访问权限窗格随即会打开。在新主账号字段中,输入负责管理 App Hub 的个人的电子邮件地址,即已启用应用的文件夹中的 App Hub 管理员角色的电子邮件地址。
点击选择角色,然后在过滤条件字段中输入 App Hub。
选择 App Hub 管理员角色,然后点击保存。
重复上述步骤,向个人授予 App Management Viewer 角色,以便他们查看支持应用管理的Google Cloud 服务中的应用数据及其属性。此角色会授予给应用已启用文件夹的所有项目和子文件夹中的个人。
点击保存。
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。 在 Cloud Shell 中运行以下命令:
gcloud components update
在已启用应用的文件夹中,向将管理 App Hub 的个人授予 App Hub 管理员角色。 针对每位管理员重复执行以下命令。他们必须拥有 App Hub 管理员角色才能创建应用。
gcloud projects add-iam-policy-binding MANAGEMENT_PROJECT_ID \ --member='user:MANAGEMENT_PROJECT_ADMIN' \ --role='roles/apphub.admin'
替换以下内容:
MANAGEMENT_PROJECT_ID
:管理项目的 ID,格式为google-mpf-FOLDER_ID
。您可以在 Google Cloud 控制台的 Identity and Access Management (IAM) 和管理设置页面上找到管理项目 ID。如果您找不到管理项目 ID,则可能不在已启用应用的文件夹中。从项目选择器中,选择已启用应用的文件夹。MANAGEMENT_PROJECT_ADMIN
:在项目中具有 App Hub 管理员角色的用户。该值的格式为username@yourdomain
,例如robert.smith@example.com
。
在已启用应用管理的文件夹中向个人授予应用管理查看者角色,以便其查看 Google Cloud 支持应用管理的各项服务中的应用数据及其属性。此角色会授予给应用启用文件夹的所有项目和子文件夹中的个人。
gcloud resource-manager folders add-iam-policy-binding FOLDER_ID \ --member='user:MANAGEMENT_PROJECT_ADMIN' \ --role='roles/apphub.appManagementViewer'
将
FOLDER_ID
替换为相应项目的 ID。您可以在 Google Cloud 控制台的“IAM 和管理”设置页面上找到启用应用功能的文件夹 ID。为确保文件夹已启用应用,设置页面应显示管理项目 ID。如果您找不到管理项目 ID,则可能不在已启用应用的文件夹中。从项目选择器中,选择已启用应用的文件夹。
创建应用
如果您还没有应用,请创建一个应用作为服务和工作负载的容器。根据启用应用的文件夹中服务和工作负载的范围,创建全球性或区域性应用。
- 借助全球应用,您可以注册从区域和全球 Google Cloud 资源发现的服务和工作负载。
- 借助区域应用,您可以注册从区域 Google Cloud 资源发现的服务和工作负载。
请注意,创建应用后,您无法更改应用范围。如需详细了解全球和区域应用,请参阅全球和区域 App Hub 应用。
控制台
- 确保您位于已启用应用功能的文件夹中。
在 Google Cloud 控制台中,前往 App Hub 的应用页面。
点击创建应用。
在创建应用页面上的选择应用区域和名称窗格中,根据您要向应用注册的服务和工作负载的范围,执行以下操作之一:
如需创建可让您从全球位置注册服务和工作负载的应用,请选择全球。
如需创建应用以允许您从单个位置注册服务和工作负载,请执行以下操作:
- 选择区域级。
- 选择区域。
输入应用名称,然后点击继续。
可选:在添加属性部分中,输入显示名称。
可选:在严重程度列表中,选择以下选项之一以指明应用的重要性:
- 任务关键型
- 高
- 中
- 低
可选:在环境列表中,选择以下选项之一以指明软件生命周期的阶段:
- 生产
- Staging
- 开发
- 测试
可选:根据需要添加以下详细信息,以供开发者所有者、运营商所有者和企业所有者使用。请注意,如果您添加了显示名称,则必须输入所有者的电子邮件地址。
- 输入所有者的显示名称。
- 输入所有者的电子邮件地址。此值必须采用
username@yourdomain
格式,例如222larabrown@gmail.com
。
针对每位开发者、运营商和企业主重复上述步骤。
点击创建。
gcloud
创建一个名为
APPLICATION_NAME
的新应用,并为其指定显示名称APPLICATION_DISPLAY_NAME
。gcloud apphub applications create APPLICATION_NAME \ --display-name='APPLICATION_DISPLAY_NAME' \ --scope-type=SCOPE_TYPE \ --criticality-type='CRITICALITY_LEVEL' \ --environment-type='ENVIRONMENT' \ --developer-owners=display-name=DISPLAY-NAME-DEVELOPER,email=EMAIL-DEVELOPER \ --operator-owners=display-name=DISPLAY-NAME-OPERATOR,email=EMAIL-OPERATOR \ --business-owners=display-name=DISPLAY-NAME-BUSINESS,email=EMAIL-BUSINESS \ --project=MANAGEMENT_PROJECT_ID \ --location=REGION
替换以下内容:
APPLICATION_NAME
:应用的名称。 名称只能包含不含空格的小写字母数字字符。APPLICATION_DISPLAY_NAME
:应用的显示名称。SCOPE_TYPE
:应用的范围,用于定义哪些服务和工作负载可供您注册到应用。请使用以下某个值:REGIONAL
GLOBAL
CRITICALITY_LEVEL
:(可选)用于指明应用、服务或工作负载对业务运营的重要性。请提供以下值之一:MISSION_CRITICAL
HIGH
MEDIUM
LOW
ENVIRONMENT
:(可选)表示软件生命周期的各个阶段。请提供以下值之一:PRODUCTION
STAGING
DEVELOPMENT
TEST
DISPLAY-NAME-DEVELOPER
、DISPLAY-NAME-OPERATOR
和DISPLAY-NAME-BUSINESS
:(可选)开发者、运营商和企业主的显示名称(分别)。EMAIL-NAME-DEVELOPER
、EMAIL-NAME-OPERATOR
和EMAIL-NAME-BUSINESS
:(可选)开发者、运营商和企业主的电子邮件地址。这些值必须采用username@yourdomain
格式,例如222larabrown@gmail.com
。MANAGEMENT_PROJECT_ID
:管理项目的 ID,格式为google-mpf-FOLDER_ID
。REGION
:应用的区域。 根据--scope-type
,为此属性提供值us-east1
或global
。
例如:
gcloud apphub applications create my-application \ --display-name='application-display-name' \ --scope-type=REGIONAL \ --criticality-type='MEDIUM' \ --environment-type='STAGING' \ --developer-owners=display-name=developer-name,email=username@yourdomain \ --project=host-project \ --location=us-east1
列出已启用应用的文件夹中的应用。
gcloud apphub applications list \ --project=MANAGEMENT_PROJECT_ID \ --location=REGION
输出类似于以下内容:
ID DISPLAY_NAME CREATE_TIME APPLICATION_NAME APPLICATION_DISPLAY_NAME 2023-10-31T18:33:48
注册服务和工作负载
将基础架构服务和工作负载注册到应用后,这些服务和工作负载会注册为 App Hub 资源。使用全局应用注册全球性资源或分布在多个区域中的资源。使用区域应用注册与该应用位于同一区域的资源。
控制台
在 Google Cloud 控制台中,前往 App Hub 的应用页面。
点击应用的名称。 系统会显示服务和工作负载标签页,其中列出了已注册的服务和工作负载,这些服务和工作负载位于已启用应用的文件夹中。
对于要注册的每项服务或工作负载,请执行以下操作:
服务和工作负载标签页会显示已注册的服务或工作负载。如需详细了解注册状态,请参阅 App Hub 的属性和特性。
gcloud
列出从已启用应用的文件夹中发现的服务。在以下命令中,您可以选择指定
filter
标志,以返回指定项目中可注册到应用的服务。gcloud apphub discovered-services list \ --filter='FILTER_RESOURCES' \ --project=MANAGEMENT_PROJECT_ID \ --location=REGION
将
FILTER_RESOURCES
替换为过滤条件,例如:service_properties.gcp_project=projects/PROJECT_ID
service_properties.gcp_project=projects/PROJECT_ID AND service_reference.uri~"forwardingRules"
输出类似于以下内容:
ID SERVICE_REFERENCE SERVICE_PROPERTIES [DISCOVERED_SERVICE_ID] {'uri': '//compute.googleapis.com/projects/[PROJECT_NUMBER]/regions/REGION/forwardingRules/forwarding-rule'} {'gcpProject': 'projects/PROJECT_1', 'location': 'REGION'}
复制输出中的服务 ID
DISCOVERED_SERVICE_ID
,以便在下一步中使用。将项目中的转发规则
forwarding-rule-name
注册为应用的服务。gcloud apphub applications services create SERVICE_NAME \ --discovered-service='projects/MANAGEMENT_PROJECT_ID/locations/REGION/discoveredServices/DISCOVERED_SERVICE' \ --display-name='SERVICE_DISPLAY_NAME' \ --application=APPLICATION_NAME \ --criticality-type='CRITICALITY_LEVEL' \ --environment-type='ENVIRONMENT' \ --developer-owners=display-name=DISPLAY-NAME-DEVELOPER,email=EMAIL-DEVELOPER \ --operator-owners=display-name=DISPLAY-NAME-OPERATOR,email=EMAIL-OPERATOR \ --business-owners=display-name=DISPLAY-NAME-BUSINESS,email=EMAIL-BUSINESS \ --project=MANAGEMENT_PROJECT_ID \ --location=REGION
替换以下内容:
SERVICE_NAME
:用于注册服务的名称。DISCOVERED_SERVICE_ID
:上一步输出中的服务 ID。SERVICE_DISPLAY_NAME
:应用的显示名称。
注意:
criticality-type
和environment-type
:(可选)您必须提供指定值之一,但这些值可以与您在创建应用时设置的值不同。如需了解详情,请参阅本文档中的创建应用部分。developer-owners
、operator-owners
和business-owners
:(可选)。 如需了解详情,请参阅本文档中的创建应用部分。
例如:
gcloud apphub applications services create my-service \ --display-name='mywebserver-service' \ --application=my-application \ --criticality-type='MEDIUM' \ --environment-type='STAGING' \ --developer-owners=display-name=developer-name,email=username@yourdomain \ --folder=folder-ID \ --location=us-east1
列出已启用应用的文件夹中发现的工作负载。在以下命令中,您可以选择指定
filter
标志,以返回指定项目中可注册到应用的工作负载。gcloud apphub discovered-workloads list \ --filter='FILTER_RESOURCES' \ --project=MANAGEMENT_PROJECT_ID \ --location=REGION
将
FILTER_RESOURCES
替换为过滤条件,例如workload_properties.gcp_project=projects/PROJECT_ID
。您将看到类似如下所示的输出,其中包含未注册的 MIG:
ID WORKLOAD_REFERENCE WORKLOAD_PROPERTIES [DISCOVERED_WORKLOAD] {'uri': '//compute.googleapis.com/projects/[PROJECT_NUMBER]/regions/REGION/instanceGroups/mig-name'} {'gcpProject': 'projects/PROJECT', 'location': 'REGION'}
从输出中复制工作负载 ID,以便在下一步中使用。
将项目中的 MIG
mig-name
注册为应用的工作负载。gcloud apphub applications workloads create WORKLOAD_NAME \ --discovered-workload='projects/MANAGEMENT_PROJECT_ID/locations/REGION/discoveredWorkloads/DISCOVERED_WORKLOAD_ID' \ --display-name=WORKLOAD_DISPLAY_NAME' \ --application=APPLICATION_NAME \ --criticality-type='CRITICALITY_LEVEL' \ --environment-type='ENVIRONMENT' \ --developer-owners=display-name=DISPLAY-NAME-DEVELOPER,email=EMAIL-DEVELOPER \ --operator-owners=display-name=DISPLAY-NAME-OPERATOR,email=EMAIL-OPERATOR \ --business-owners=display-name=DISPLAY-NAME-BUSINESS,email=EMAIL-BUSINESS \ --project=MANAGEMENT_PROJECT_ID \ --location=REGION
替换以下内容:
WORKLOAD_NAME
:用于注册工作负载的名称。DISCOVERED_WORKLOAD_ID
:上一步输出中的工作负载 ID。WORKLOAD_DISPLAY_NAME
:应用的显示名称。
注意:
criticality-type
和environment-type
:(可选)您必须提供指定值之一,但这些值可以与您在创建应用时设置的值不同。如需了解详情,请参阅本文档中的创建应用部分。developer-owners
、operator-owners
和business-owners
:(可选)。 如需了解详情,请参阅本文档中的创建应用部分。
例如:
gcloud apphub applications workloads create my-workload \ --display-name='mywebserver-deployment1' \ --application=my-application \ --criticality-type='MEDIUM' \ --environment-type='STAGING' \ --developer-owners=display-name=developer-name,email=username@yourdomain \ --folder=folder-ID \ --location=us-east1
App Hub 设置流程已完成。
添加或移除项目
您可以修改项目附件,以便将不同的基础设施资源分组到应用中。
控制台
将项目添加到已启用应用的文件夹
-
In the Google Cloud console, go to the project selector page.
-
Click Create project.
-
Name your project. Make a note of your generated project ID.
-
Edit the other fields as needed.
-
Click Create.
从已启用应用的文件夹中移除项目
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
gcloud
将项目添加到已启用应用的文件夹
gcloud projects create PROJECT_ID \ --folder FOLDER_ID
从已启用应用的文件夹中移除项目
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID