将现有资源注册到应用

将现有服务和工作负载注册到应用中,可让您根据资源的业务用途来组织资源,从而简化管理。 此方法可提供统一的可见性、监控、治理和运营控制。

本指南介绍了如何对Google Cloud 中运行的现有服务和工作负载进行分组,这些服务和工作负载尚未正式定义为应用。

准备工作

您必须先完成应用管理的初始设置,然后才能将资源整理到应用中。此流程通常涉及以下角色和步骤:

创建应用

在 App Hub 中创建一个应用,作为现有服务和工作负载的逻辑容器:

控制台

  1. 在 Google Cloud 控制台中,使用项目选择器选择宿主项目或已启用应用的文件夹的管理项目,具体取决于您的设置模型
  2. 从 App Hub 前往应用页面:

    打开“应用”

  3. 点击创建应用

  4. 选择应用区域和名称窗格中,根据您的地理分布要求,为应用选择最适合的位置:

    • 选择区域级以创建区域级应用。然后,根据 App Hub 支持的区域为您的应用选择特定区域。
    • 选择全局以创建全局应用。

    如需详细了解应用的最佳位置,请参阅全球应用和区域应用

  5. 输入应用名称,然后点击继续

  6. 可选:定义应用的顶级属性,以支持可发现性和治理

    • 添加属性部分中,输入显示名称
    • 严重程度列表中,选择一个值来指明应用的重要性。
    • 环境列表中,选择一个值来指明软件生命周期的阶段。
    • 添加所有者的联系信息详情,包括其显示名称和电子邮件地址。请注意,电子邮件地址必须采用 username@yourdomain 格式,例如 jane-doe@gmail.com
  7. 点击创建

gcloud

  1. 使用 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_NAMEDEV_EMAIL:开发者所有者的显示名称和电子邮件地址(分别)。

    • 可选:OPERATOR_NAMEOPERATOR_EMAIL:分别是运营商所有者的显示名称和电子邮件地址。

    • 可选:BUSINESS_NAMEBUSINESS_EMAIL:商家所有者的显示名称和电子邮件地址(分别)。

  2. 列出项目中的应用:

    gcloud apphub applications list \
      --project=PROJECT_ID \
      --location=REGION
    

    您必须获得类似于以下内容的输出:

    ID                 DISPLAY_NAME   CREATE_TIME
    APPLICATION_NAME   DISPLAY_NAME   2023-10-31T18:33:48
    

注册服务和工作负载

创建应用后,请向该应用注册现有服务和工作负载:

控制台

  1. 在 Google Cloud 控制台中,使用项目选择器选择宿主项目或已启用应用的文件夹的管理项目,具体取决于您的设置模型
  2. 从 App Hub 前往应用页面:

    打开“应用”

  3. 点击要为其注册现有服务和工作负载的应用的名称。

  4. 在应用的详情页面中,选择服务和工作负载标签页。此标签页会显示您可以向应用注册的现有资源列表。借助 App Hub,您可以选择资源层次结构中的受支持的资源作为服务和工作负载。

  5. 对于要注册的每项服务或工作负载,请执行以下操作:

    1. 服务和工作负载标签页中,点击注册服务/工作负载
    2. 前往选择资源窗格,然后点击浏览以查找要注册的服务或工作负载。
    3. 选择服务或工作负载,然后点击选择
    4. 选择资源窗格中,输入服务或工作负载的名称,然后点击继续
    5. 可选:在添加属性窗格中,定义资源的高级属性,以支持可发现性和治理

    6. 点击继续

    7. 可选:在添加所有者部分中,添加有关服务或工作负载所有者的更多详细信息。

    8. 点击注册

服务和工作负载标签页会显示已注册的服务或工作负载。

gcloud

借助 App Hub,您可以选择资源层次结构中的受支持的资源作为服务和工作负载。使用 Google Cloud CLI 从终端或 Cloud Shell 列出可向应用注册的服务或工作负载。服务和工作负载的命令略有不同:

注册服务

  1. 列出可注册到应用的可用服务

    gcloud apphub discovered-services list \
      --project=PROJECT_ID \
      --location=REGION \
      --filter=FILTER_EXPRESSION
    

    对于必需标志和可选标志,请替换以下内容:

    • 必需:PROJECT_ID:宿主项目或管理项目的 ID,具体取决于您的设置模型
    • 必需:REGION:根据您的地理分布情况,您的服务的具体区域。请使用以下某个值:

    • 可选: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'}
    
  2. 从输出中复制服务 ID SERVICE_ID

  3. 向应用注册服务:

    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:根据您的地理分布情况,您的服务的具体区域。请使用以下某个值:

    • 必需:APPLICATION_NAME:您要为其注册服务的应用的名称。

    • 必需:SERVICE_ID:您从上一个输出中复制的服务 ID。

    • 可选:SERVICE_DISPLAY_NAME:服务的显示名称。

    • 可选:CRITICALITY:服务对您的运营的重要性级别。请使用以下某个值:

      • MISSION_CRITICAL
      • HIGH
      • MEDIUM
      • LOW
    • 可选:ENVIRONMENT:软件生命周期的阶段。请使用以下某个值:

      • PRODUCTION
      • STAGING
      • DEVELOPMENT
      • TEST
    • 可选:DEV_NAMEDEV_EMAIL:开发者所有者的显示名称和电子邮件地址(分别)。

    • 可选:OPERATOR_NAMEOPERATOR_EMAIL:运营商所有者的显示名称和电子邮件地址(分别)。

    • 可选:BUSINESS_NAMEBUSINESS_EMAIL:企业主的显示名称和电子邮件地址(分别)。

  4. 列出应用中已注册的服务:

    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
    

注册工作负载

  1. 列出可注册到应用的可用工作负载

    gcloud apphub discovered-workloads list \
      --project=PROJECT_ID \
      --location=REGION \
      --filter=FILTER_EXPRESSION
    

    对于必需标志和可选标志,请替换以下内容:

    • 必需:PROJECT_ID:宿主项目或管理项目的 ID,具体取决于您的设置模型
    • 必需:REGION:工作负载的特定区域,具体取决于地理分布。请使用以下某个值:

    • 可选: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'}
    
  2. 从输出中复制工作负载 ID WORKLOAD_ID

  3. 将工作负载注册到您的应用:

    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:工作负载的特定区域,具体取决于地理分布。请使用以下某个值:

    • 必需:APPLICATION_NAME:您要注册工作负载的应用的名称。

    • 必需:WORKLOAD_ID:您从上一个输出中复制的工作负载 ID。

    • 可选:WORKLOAD_DISPLAY_NAME:工作负载的显示名称。

    • 可选:CRITICALITY:工作负载对您运营的重要性级别。请使用以下某个值:

      • MISSION_CRITICAL
      • HIGH
      • MEDIUM
      • LOW
    • 可选:ENVIRONMENT:软件生命周期的阶段。请使用以下某个值:

      • PRODUCTION
      • STAGING
      • DEVELOPMENT
      • TEST
    • 可选:DEV_NAMEDEV_EMAIL:开发者所有者的显示名称和电子邮件地址(分别)。

    • 可选:OPERATOR_NAMEOPERATOR_EMAIL:运营商所有者的显示名称和电子邮件地址(分别)。

    • 可选:BUSINESS_NAMEBUSINESS_EMAIL:企业主的显示名称和电子邮件地址(分别)。

  4. 列出应用中已注册的工作负载:

    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 中创建应用并注册资源后,您可以根据职责授予用户访问权限,并以单个单元的形式管理此逻辑分组:

  1. 您可以根据自己的访问需求向应用授予权限。 如需查看推荐的角色列表,请参阅向用户授予以应用为中心的角色
  2. 前往 Cloud Hub,查看已定义应用的统一运营信息中心,包括其健康状况、性能和费用数据。