将现有服务和工作负载注册到应用中,可让您根据资源的业务用途来组织资源,从而简化管理。 此方法可提供统一的可见性、监控、治理和运营控制。
本指南介绍了如何对Google Cloud 中运行的现有服务和工作负载进行分组,这些服务和工作负载尚未正式定义为应用。
准备工作
您必须先完成应用管理的初始设置,然后才能将资源整理到应用中。此流程通常涉及以下角色和步骤:
面向管理员:
对于开发者和运营商:
- 与您的管理员确认初始设置是否已完成。
- 确保您拥有要执行的任务所需的 IAM 角色。
- 根据您的设置模型,打开已启用应用的文件夹或宿主项目。
创建应用
在 App Hub 中创建一个应用,作为现有服务和工作负载的逻辑容器:
控制台
- 在 Google Cloud 控制台中,使用项目选择器选择宿主项目或已启用应用的文件夹的管理项目,具体取决于您的设置模型。
从 App Hub 前往应用页面:
点击创建应用。
在选择应用区域和名称窗格中,根据您的地理分布要求,为应用选择最适合的位置:
- 选择区域级以创建区域级应用。然后,根据 App Hub 支持的区域为您的应用选择特定区域。
- 选择全局以创建全局应用。
如需详细了解应用的最佳位置,请参阅全球应用和区域应用。
输入应用名称,然后点击继续。
可选:定义应用的顶级属性,以支持可发现性和治理:
- 在添加属性部分中,输入显示名称。
- 在严重程度列表中,选择一个值来指明应用的重要性。
- 在环境列表中,选择一个值来指明软件生命周期的阶段。
- 添加所有者的联系信息详情,包括其显示名称和电子邮件地址。请注意,电子邮件地址必须采用
username@yourdomain
格式,例如jane-doe@gmail.com
。
点击创建。
gcloud
使用 Google Cloud CLI 通过终端或 Cloud Shell 创建应用:
gcloud apphub applications create APPLICATION_NAME \ --project=PROJECT_ID \ --scope-type=LOCATION \ --location=REGION \ --display-name=DISPLAY_NAME \ --criticality-type=CRITICALITY \ --environment-type=ENVIRONMENT \ --developer-owners=display-name=DEV_NAME,email=DEV_EMAIL \ --operator-owners=display-name=OPERATOR_NAME,email=OPERATOR_EMAIL \ --business-owners=display-name=BUSINESS_NAME,email=BUSINESS_EMAIL
将
APPLICATION_NAME
替换为应用的名称。名称只能包含不含空格的小写字母数字字符。使用
--criticality-type
等可选标志来定义应用的顶级属性,并支持可发现性和治理。对于必需标志和可选标志,请替换以下内容:
- 必需:
PROJECT_ID
:宿主项目或管理项目的 ID,具体取决于您的设置模型。 必需:
LOCATION
:根据您的地理分布要求,应用的位置。请使用以下某个值:REGIONAL
(代表区域级应用)。GLOBAL
(适用于全球应用)。
如需详细了解应用的最佳位置,请参阅全球应用和区域应用。
必需:
REGION
:应用的特定区域。请使用以下某个值:- 如果应用的
--scope-type
位置设置为REGIONAL
,请指定受 App Hub 支持的区域名称。 - 如果应用的
--scope-type
位置设置为GLOBAL
,请使用global
。
- 如果应用的
可选:
DISPLAY_NAME
:应用的显示名称。可选:
CRITICALITY
:应用对操作的重要性级别。请使用以下某个值:MISSION_CRITICAL
HIGH
MEDIUM
LOW
可选:
ENVIRONMENT
:软件生命周期的阶段。请使用以下某个值:PRODUCTION
STAGING
DEVELOPMENT
TEST
可选:
DEV_NAME
和DEV_EMAIL
:开发者所有者的显示名称和电子邮件地址(分别)。可选:
OPERATOR_NAME
和OPERATOR_EMAIL
:分别是运营商所有者的显示名称和电子邮件地址。可选:
BUSINESS_NAME
和BUSINESS_EMAIL
:商家所有者的显示名称和电子邮件地址(分别)。
- 必需:
列出项目中的应用:
gcloud apphub applications list \ --project=PROJECT_ID \ --location=REGION
您必须获得类似于以下内容的输出:
ID DISPLAY_NAME CREATE_TIME APPLICATION_NAME DISPLAY_NAME 2023-10-31T18:33:48
注册服务和工作负载
创建应用后,请向该应用注册现有服务和工作负载:
控制台
- 在 Google Cloud 控制台中,使用项目选择器选择宿主项目或已启用应用的文件夹的管理项目,具体取决于您的设置模型。
从 App Hub 前往应用页面:
点击要为其注册现有服务和工作负载的应用的名称。
在应用的详情页面中,选择服务和工作负载标签页。此标签页会显示您可以向应用注册的现有资源列表。借助 App Hub,您可以选择资源层次结构中的受支持的资源作为服务和工作负载。
对于要注册的每项服务或工作负载,请执行以下操作:
- 在服务和工作负载标签页中,点击注册服务/工作负载。
- 前往选择资源窗格,然后点击浏览以查找要注册的服务或工作负载。
- 选择服务或工作负载,然后点击选择。
- 在选择资源窗格中,输入服务或工作负载的名称,然后点击继续。
可选:在添加属性窗格中,定义资源的高级属性,以支持可发现性和治理。
点击继续。
可选:在添加所有者部分中,添加有关服务或工作负载所有者的更多详细信息。
点击注册。
服务和工作负载标签页会显示已注册的服务或工作负载。
gcloud
借助 App Hub,您可以选择资源层次结构中的受支持的资源作为服务和工作负载。使用 Google Cloud CLI 从终端或 Cloud Shell 列出可向应用注册的服务或工作负载。服务和工作负载的命令略有不同:
注册服务
列出可注册到应用的可用服务:
gcloud apphub discovered-services list \ --project=PROJECT_ID \ --location=REGION \ --filter=FILTER_EXPRESSION
对于必需标志和可选标志,请替换以下内容:
- 必需:
PROJECT_ID
:宿主项目或管理项目的 ID,具体取决于您的设置模型。 必需:
REGION
:根据您的地理分布情况,您的服务的具体区域。请使用以下某个值:- 如果服务是区域级服务,请指定 App Hub 支持的区域名称。
- 如果服务是全球性的,请使用
global
。
可选:
FILTER_EXPRESSION
:--filter
标志的过滤表达式,用于仅显示来自指定项目或具有特定属性的服务,例如:service_properties.gcp_project=projects/PROJECT_ID
service_properties.gcp_project=projects/PROJECT_ID AND service_reference.uri~"forwardingRules"
输出类似于以下示例:
ID SERVICE_REFERENCE SERVICE_PROPERTIES SERVICE_ID {'uri': '//compute.googleapis.com/projects/PROJECT_NUMBER/regions/REGION/forwardingRules/forwarding-rule'} {'gcpProject': 'projects/PROJECT_ID', 'location': 'REGION'}
- 必需:
从输出中复制服务 ID
SERVICE_ID
。向应用注册服务:
gcloud apphub applications services create SERVICE_NAME \ --project=PROJECT_ID \ --location=REGION \ --application=APPLICATION_NAME \ --discovered-service=projects/PROJECT_ID/locations/REGION/discoveredServices/SERVICE_ID \ --display-name=SERVICE_DISPLAY_NAME \ --criticality-type=CRITICALITY \ --environment-type=ENVIRONMENT \ --developer-owners=display-name=DEV_NAME,email=DEV_EMAIL \ --operator-owners=display-name=OPERATOR_NAME,email=OPERATOR_EMAIL \ --business-owners=display-name=BUSINESS_NAME,email=BUSINESS_EMAIL
将
SERVICE_NAME
替换为您要用于向应用注册服务的名称。使用
--criticality-type
等可选标志来定义服务的顶级属性,并支持可发现性和治理。对于必需标志和可选标志,请替换以下内容:
- 必需:
PROJECT_ID
:宿主项目或管理项目的 ID,具体取决于您的设置模型。 必需:
REGION
:根据您的地理分布情况,您的服务的具体区域。请使用以下某个值:- 如果服务是区域级服务,请指定 App Hub 支持的区域名称。
- 如果服务是全球性的,请使用
global
。
必需:
APPLICATION_NAME
:您要为其注册服务的应用的名称。必需:
SERVICE_ID
:您从上一个输出中复制的服务 ID。可选:
SERVICE_DISPLAY_NAME
:服务的显示名称。可选:
CRITICALITY
:服务对您的运营的重要性级别。请使用以下某个值:MISSION_CRITICAL
HIGH
MEDIUM
LOW
可选:
ENVIRONMENT
:软件生命周期的阶段。请使用以下某个值:PRODUCTION
STAGING
DEVELOPMENT
TEST
可选:
DEV_NAME
和DEV_EMAIL
:开发者所有者的显示名称和电子邮件地址(分别)。可选:
OPERATOR_NAME
和OPERATOR_EMAIL
:运营商所有者的显示名称和电子邮件地址(分别)。可选:
BUSINESS_NAME
和BUSINESS_EMAIL
:企业主的显示名称和电子邮件地址(分别)。
- 必需:
列出应用中已注册的服务:
gcloud apphub applications services list \ --application=APPLICATION_NAME --project=PROJECT_ID \ --location=REGION
您必须为每个已注册的服务获得类似于以下内容的输出:
ID DISPLAY_NAME SERVICE_REFERENCE CREATE_TIME SERVICE_NAME SERVICE_DISPLAY_NAME {'uri': '//compute.googleapis.com/projects/PROJECT_NUMBER/regions/REGION/forwardingRules/forwarding-rule'} 2023-11-01T21:38:08
注册工作负载
列出可注册到应用的可用工作负载:
gcloud apphub discovered-workloads list \ --project=PROJECT_ID \ --location=REGION \ --filter=FILTER_EXPRESSION
对于必需标志和可选标志,请替换以下内容:
- 必需:
PROJECT_ID
:宿主项目或管理项目的 ID,具体取决于您的设置模型。 必需:
REGION
:工作负载的特定区域,具体取决于地理分布。请使用以下某个值:- 如果工作负载是区域级的,请指定App Hub 支持的区域名称。
- 如果工作负载是全球性的,请使用
global
。
可选:
FILTER_EXPRESSION
:--filter
标志的过滤表达式,用于仅显示来自指定项目或具有特定属性的工作负载,例如workload_properties.gcp_project=projects/PROJECT_ID
。
输出类似于以下示例:
ID WORKLOAD_REFERENCE WORKLOAD_PROPERTIES WORKLOAD_ID {'uri': '//compute.googleapis.com/projects/PROJECT_NUMBER/regions/REGION/instanceGroups/mig-name'} {'gcpProject': 'projects/PROJECT_ID', 'location': 'REGION'}
- 必需:
从输出中复制工作负载 ID
WORKLOAD_ID
。将工作负载注册到您的应用:
gcloud apphub applications workloads create WORKLOAD_NAME \ --project=PROJECT_ID \ --location=REGION \ --application=APPLICATION_NAME \ --discovered-workload=projects/PROJECT_ID/locations/REGION/discoveredWorkloads/WORKLOAD_ID \ --display-name=WORKLOAD_DISPLAY_NAME \ --criticality-type=CRITICALITY \ --environment-type=ENVIRONMENT \ --developer-owners=display-name=DEV_NAME,email=DEV_EMAIL \ --operator-owners=display-name=OPERATOR_NAME,email=OPERATOR_EMAIL \ --business-owners=display-name=BUSINESS_NAME,email=BUSINESS_EMAIL
将
WORKLOAD_NAME
替换为您要用于向应用注册工作负载的名称。使用
--criticality-type
等可选标志来定义工作负载的顶级属性,并支持可发现性和治理。对于必需标志和可选标志,请替换以下内容:
- 必需:
PROJECT_ID
:宿主项目或管理项目的 ID,具体取决于您的设置模型。 必需:
REGION
:工作负载的特定区域,具体取决于地理分布。请使用以下某个值:- 如果工作负载是区域级的,请指定App Hub 支持的区域名称。
- 如果工作负载是全球性的,请使用
global
。
必需:
APPLICATION_NAME
:您要注册工作负载的应用的名称。必需:
WORKLOAD_ID
:您从上一个输出中复制的工作负载 ID。可选:
WORKLOAD_DISPLAY_NAME
:工作负载的显示名称。可选:
CRITICALITY
:工作负载对您运营的重要性级别。请使用以下某个值:MISSION_CRITICAL
HIGH
MEDIUM
LOW
可选:
ENVIRONMENT
:软件生命周期的阶段。请使用以下某个值:PRODUCTION
STAGING
DEVELOPMENT
TEST
可选:
DEV_NAME
和DEV_EMAIL
:开发者所有者的显示名称和电子邮件地址(分别)。可选:
OPERATOR_NAME
和OPERATOR_EMAIL
:运营商所有者的显示名称和电子邮件地址(分别)。可选:
BUSINESS_NAME
和BUSINESS_EMAIL
:企业主的显示名称和电子邮件地址(分别)。
- 必需:
列出应用中已注册的工作负载:
gcloud apphub applications workloads list \ --application=APPLICATION_NAME --project=PROJECT_ID \ --location=REGION
您必须为每个已注册的工作负载获得类似于以下内容的输出:
ID DISPLAY_NAME WORKLOAD_REFERENCE CREATE_TIME WORKLOAD_NAME WORKLOAD_DISPLAY_NAME {'uri': '//compute.googleapis.com/projects/PROJECT_NUMBER/regions/REGION/instanceGroups/mig-name'} 2023-11-01T21:38:08
授予权限并开始操作
在 App Hub 中创建应用并注册资源后,您可以根据职责授予用户访问权限,并以单个单元的形式管理此逻辑分组:
- 您可以根据自己的访问需求向应用授予权限。 如需查看推荐的角色列表,请参阅向用户授予以应用为中心的角色。
- 前往 Cloud Hub,查看已定义应用的统一运营信息中心,包括其健康状况、性能和费用数据。