设置 App Hub

本文档介绍了如何设置 App Hub,以便在 Google Cloud 上构建、运行和管理应用。时间是 适用于设置和管理 App Hub 的用户。

如果您要设置 App Hub,主要任务包括 如下:

  1. 决定是创建新的 App Hub 宿主项目,还是使用 将现有项目用作宿主项目。
    • 如果您打算拥有多个宿主项目,我们强烈建议您 在同一文件夹中创建这些文件
    • App Hub 中的宿主项目与 共享 VPC 宿主项目,并且没有相同的要求。 例如,您无需共享 VPC 网络即可使用 App Hub。在本课中, 文档,所有对宿主项目的引用均指向 App Hub 托管项目
    • 宿主项目不能是自身以外的服务项目。
  2. 在宿主项目中启用 App Hub API。
  3. 将一个或多个 App Hub 服务项目添加到宿主项目。
    • App Hub 中的服务项目不同于共享 VPC 服务项目,也不具有相同的要求。在本文档中,对服务项目的所有引用均是指 App Hub 服务项目。
  4. 将 App Hub 用户指定为 App Hub 管理员、App Hub Editor 或 App Hub 查看者。
  5. 创建应用。
  6. 将服务和工作负载注册到应用。

服务和工作负载

使用 App Hub 时,连接到 宿主项目以服务和工作负载的形式提供给您将服务和工作负载注册到应用后,您就可以观察和监控这些资源。您可以将以下资源指定为 App Hub 服务,并将其注册到 App Hub 应用:

  • 转发规则
  • 网址映射
  • 后端服务

您可以将托管实例组 (MIG) 指定为工作负载,但不能将单个虚拟机指定为工作负载,并将其注册到 App Hub 应用。

App Hub 支持全球(预览版)和区域性资源。如需了解详情,请参阅 App Hub 支持的资源

您注册的服务和工作负载必须与 application;因此后面的说明和命令假定 资源位于同一区域如需了解您可以指定哪些区域,请参阅位置

整体设置流程

以下列表总结了设置 App Hub 的步骤:

  1. 确定将哪些现有资源包含在您的 应用及其所属的项目
  2. 创建 App Hub 宿主项目并启用 项目中的 App Hub API。您可以根据企业的组织结构,创建多个宿主项目(可选)。如果您要创建多个项目,我们建议您在新文件夹中创建这些项目。
  3. 关联服务项目。配置宿主项目后,将包含应用所需底层资源的服务项目附加到宿主项目。请注意以下几点:
    1. 服务项目必须位于同一组织中 作为宿主项目将服务项目附加到宿主项目后,您便无法将其移至其他组织。要移动 另一个组织,则必须遵循 本文档中的说明 移除或分离 服务项目连接到宿主项目。然后,您可以将 复制到另一个组织
    2. 一个服务项目不能关联到多个宿主项目。
    3. 宿主项目可以是自己的服务项目,但不能是 其他宿主项目的“Service”项目。
    4. 将服务项目附加到宿主项目后,查询宿主项目中的服务或工作负载会自动返回所有服务项目中的所有服务和工作负载。
  4. 创建应用来整理多个工作负载和服务。请注意以下事项:
    1. 确保应用在宿主项目和位置中具有唯一的名称。
    2. 服务项目可以附加到包含多个应用的宿主项目,但其各个资源只能注册到一个应用。
  5. 查询服务和工作负载,并将其注册到您的应用。创建应用后,您可以查询宿主项目以了解可用服务和工作负载。这些查询会针对宿主项目 与宿主项目关联的服务项目。它们还会返回这些项目中的所有服务和工作负载。请注意以下几点: <ph type="x-smartling-placeholder">
      </ph>
    1. 您只能将一项服务或工作负载注册到单个应用。
    2. 您注册的所有工作负载和服务都必须与应用位于同一区域。
    3. 已注册的服务和工作负载 底层基础设施资源换句话说,如果您删除用作服务和工作负载的基础资源,App Hub 不会从您的应用中删除关联的工作负载和服务。您必须单独取消注册工作负载或服务。

前提条件

在设置 App Hub 之前,请完成以下任务。

  1. 确定将哪个现有项目设为宿主项目,或创建一个新项目 是宿主项目。我们强烈建议您创建一个新项目。
  2. 确保您已决定哪些人拥有 Identity and Access Management (IAM) App Hub 的以下角色:App Hub Admin、 App Hub Editor 和 App Hub Viewer。

请注意以下几点:

  • 宿主项目可以关联一个或多个服务项目。
  • 一个服务项目不能关联到多个宿主项目。
  • 将服务项目附加到宿主项目的用户必须同时在服务项目和宿主项目中拥有 IAM 角色“App Hub Admin”。如需了解详情,请参阅 App Hub 角色和权限

设置 App Hub

在本部分中,您将创建一个示例 App Hub 架构。

在该示例中,一个组织有三个服务项目, 项目中部署的基础架构资源,如下所示:

  • 服务项目 1 有两个基础架构资源,即服务 1 和服务 2。
  • 服务项目 2 包含三个基础架构资源:服务 3、工作负载 1 和工作负载 2。
  • 服务项目 3 包含三个基础架构资源:服务 4、工作负载 3 和工作负载 4。

确保您为创建示例而选择的项目包含本部分中所述的资源,或者准备好在按照说明操作时调整示例。

以下部分包含有关创建 App Hub 示例的说明。创建宿主项目并添加服务 将多个项目与宿主项目关联,然后创建应用、关联服务和 将工作负载传输到应用该示例包含三个服务项目,但您可以添加更多或更少的服务项目。

该示例假定您添加的所有服务项目都已存在,并且包含您添加到应用中的服务和工作负载。在您之前 创建示例,确定哪些服务项目包含这些服务, 工作负载。

启用 App Hub

在本部分中,您将选择或创建新的托管项目、启用 App Hub API,并向组织中的个人授予适当的角色和权限。您还可以将服务项目关联到宿主项目。

控制台

  1. 在 Google Cloud Console 中,转到项目选择器页面。

    转到“项目选择器”

  2. 选择或创建 Google Cloud 项目,以用作 App Hub 托管项目。

  3. Enable the required API.

    Enable the API

  4. 如果您是项目创建者,则会被授予基本 Owner 角色 (roles/owner)。默认情况下,此 IAM 角色包含对大多数 Google Cloud 资源的完整访问权限。

    如果您不是项目创建者,则必须向主账号授予项目的必需权限。例如,主账号可以是 Google 账号(针对最终用户)或服务账号(针对应用和计算工作负载)。如需获得完成本教程所需的权限,请让您的管理员为您授予项目的以下 IAM 角色:

    1. 在 Google Cloud 控制台中,转到 IAM 页面。

      转到 IAM

    2. 点击授予访问权限。 此时会打开授予访问权限窗格。

    3. 新的主账号字段中,输入 负责管理 App Hub 在宿主项目中拥有 App Hub Admin 角色。

    4. 点击选择角色,然后在过滤条件字段中输入 App Hub

    5. 选择 App Hub Admin 角色,然后点击保存

    6. 在每个 App Hub 服务项目中,授予 向同一用户授予 App Hub Admin 角色。

  5. 在 Google Cloud 控制台中,前往 App Hub 设置 页面。

    前往“设置”

  6. 设置页面上,点击关联项目

  7. 执行下列其中一项操作:

    • 在项目列表中,选中您要创建的项目所对应的复选框 希望添加为服务项目的服务项目。
    • 搜索项目,然后选择要添加为服务项目的项目。
  8. 点击选择Attached Service Project(s) 表显示所选服务 项目。

  9. 点击关闭

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    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.

  2. 确保安装了最新版本的 Google Cloud CLI。运行 运行以下命令:

    gcloud components update
  3. 创建或选择一个新项目 HOST_PROJECT_ID,将其用作 App Hub 的宿主项目。

    • 创建 Google Cloud 项目:
      gcloud projects create HOST_PROJECT_ID
    • 选择您创建的 Google Cloud 项目:
      gcloud config set project HOST_PROJECT_ID
  4. 在您刚刚创建的宿主项目中启用 App Hub API。

    gcloud services enable apphub.googleapis.com \
        --project=HOST_PROJECT_ID
    
  5. 如果您是项目创建者,则会被授予基本 Owner 角色 (roles/owner)。默认情况下,此 IAM 角色包含对大多数 Google Cloud 资源的完整访问权限。

    如果您不是项目创建者,则必须向主账号授予项目的必需权限。例如, 主账号可以是 Google 账号(对于最终用户)或服务账号 (针对应用和计算工作负载)。 如需获得完成本教程所需的权限,请让您的管理员为您授予项目的以下 IAM 角色:

    1. (可选)授予将负责管理的人员 App Hub,即 App Hub 管理员角色。针对每位管理员重复以下命令。

      gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
          --member='user:HOST_PROJECT_ADMIN' \
          --role='roles/apphub.admin'
      

      HOST_PROJECT_ADMIN 替换为在宿主项目中具有 App Hub Admin 角色的用户。此值的格式为 username@yourdomain,例如 robert.smith@example.com

    2. 将服务项目中的 App Hub Admin 角色授予 管理 App Hub 的人员。他们必须拥有应用中心管理员角色,才能将服务项目添加到宿主项目。对于每项服务,您至少需要一个拥有此角色的人员 项目。一个人可以在多个服务项目中拥有该角色。

      gcloud projects add-iam-policy-binding SERVICE_PROJECT_1 \
          --member='user:HOST_PROJECT_ADMIN' \
          --role='roles/apphub.admin'
      
      gcloud projects add-iam-policy-binding SERVICE_PROJECT_2 \
          --member='user:HOST_PROJECT_ADMIN' \
          --role='roles/apphub.admin'
      
      gcloud projects add-iam-policy-binding SERVICE_PROJECT_3 \
          --member='user:HOST_PROJECT_ADMIN' \
          --role='roles/apphub.admin'
      

      替换以下内容:

      • SERVICE_PROJECT_1:第 1 个,共三个 多个服务项目。
      • SERVICE_PROJECT_2:本例中三个服务项目中的第二个。
      • SERVICE_PROJECT_3:第三个,共三个 多个服务项目。
  6. 将您的服务项目添加到 App Hub 宿主项目。

    gcloud apphub service-projects add SERVICE_PROJECT_1 \
        --project=HOST_PROJECT_ID
    
    gcloud apphub service-projects add SERVICE_PROJECT_2 \
        --project=HOST_PROJECT_ID
    
    gcloud apphub service-projects add SERVICE_PROJECT_3 \
        --project=HOST_PROJECT_ID
    

可选:将服务项目添加到宿主项目的指标范围

如需查看宿主项目中应用的系统指标,请执行以下操作: 将服务项目作为资源容器添加到宿主项目 指标范围。App Hub 宿主项目可充当 托管指标范围范围项目。Google Cloud 项目的指标范围定义了一组资源容器,宿主项目可以绘制和监控这些容器的时间序列数据。如需详细了解资源 容器、指标范围和范围项目,请参阅 Cloud Monitoring:数据模型

如需查看应用的系统指标,您必须根据需要从宿主项目中手动添加或删除受监控的服务项目。不过,如果您将宿主项目用作自己的服务项目,由于 App Hub 应用位于同一项目中,因此请勿将该项目添加到指标范围。

确保您拥有以下 IAM 角色:

控制台

  1. 在 Google Cloud 控制台中,转到 设置页面:

    前往设置

    如果您使用搜索栏查找此页面,请选择子标题为监控的结果。

  2. 选择指标范围

    Metric Scope(指标范围)标签页列出了当前 Google Cloud 项目监控的资源。它还列出了 指标范围包括当前的 Google Cloud 项目。

  3. 如需将 Google Cloud 项目添加到指标范围,请执行以下操作:

    1. Google Cloud 项目窗格中,点击添加项目
    2. 添加 Google Cloud 项目对话框中,点击选择项目,然后选中要监控的所需服务项目对应的复选框。
    3. 点击添加项目保存更改。

      系统随即会显示设置页面,其中该页面上的表格会更新为列出您的选择。

将项目添加到指标范围后,更改大约需要 60 秒才能传播到所有 Monitoring 系统。

如需详细了解如何使用 Google Cloud 控制台配置指标范围,请参阅配置指标范围

gcloud

如需将服务项目作为受监控的资源容器添加到 App Hub 宿主项目,请执行以下操作:

gcloud beta monitoring metrics-scopes create projects/SERVICE_PROJECT_1 \
    --project=HOST_PROJECT_ID
gcloud beta monitoring metrics-scopes create projects/SERVICE_PROJECT_2 \
    --project=HOST_PROJECT_ID
gcloud beta monitoring metrics-scopes create projects/SERVICE_PROJECT_3 \
    --project=HOST_PROJECT_ID

详细了解如何使用 Google Cloud CLI,请参阅 使用 API 配置指标范围

创建应用

如果您还没有应用,请创建一个应用来充当服务和工作负载的容器。根据服务项目中的服务和工作负载的范围,创建全球(预览版)或区域应用。

  • 借助全局应用预览版),您可以注册从全球 Google Cloud 资源中发现的服务和工作负载。
  • 借助区域级应用,您可以注册已发现的服务和工作负载 从区域级 Google Cloud 资源中选择

请注意,应用创建后,您将无法更改应用范围。您只能在全球应用中注册全球性资源,在地区性应用(预览版)中注册地区性资源。如需更多信息 请参阅 全球和区域性的 App Hub 应用

控制台

  1. 确保您位于宿主项目中。
  2. 在 Google Cloud 控制台中,前往 App Hub 的应用页面。

    打开“应用”

  3. 点击创建应用

  4. 创建应用程序页面上的选择应用程序区域 和名称窗格,具体取决于您希望的服务和工作负载范围。 要注册到应用,请执行以下操作之一:

    • 创建可让您注册服务和工作负载的应用 从全球位置选择全局预览版)。

    • 如需创建一个应用,以便您从单个位置注册服务和工作负载,请执行以下操作:

      1. 选择区域级
      2. 选择区域
  5. 输入应用名称,然后点击继续

  6. (可选)在以下字段中为应用添加更多详细信息。有关详情,请参阅本文档中 更新现有 App Hub 应用

  7. 点击创建

gcloud

  1. 创建名为 APPLICATION_NAME 并为其指定一个显示名称 APPLICATION_DISPLAY_NAME

    gcloud apphub applications create APPLICATION_NAME \
      --scope-type=SCOPE_TYPE \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    替换以下内容:

    • APPLICATION_NAME:应用的名称。名称只能包含小写字母数字字符,且不得包含空格。
    • SCOPE_TYPE:应用的范围,用于定义您可以向应用注册哪些服务和工作负载。请使用以下某个值:
    • REGION:应用的区域。根据 --scope-type,为其赋值 us-east1global预览版)。
  2. 列出宿主项目中的应用。

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

    输出类似于以下内容:

    ID                DISPLAY_NAME              CREATE_TIME
    APPLICATION_NAME  APPLICATION_DISPLAY_NAME  2023-10-31T18:33:48
    
  3. 获取您创建的应用的详细信息。

    gcloud apphub applications describe APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    该命令会以 YAML 格式返回信息,类似于以下内容。

    createTime: '2023-10-31T18:33:48.199394108Z'
    displayName: APPLICATION_DISPLAY_NAME
    name: projects/HOST_PROJECT_ID/locations/REGION/applications/APPLICATION_NAME
    scope:
      type: SCOPE_TYPE
    state: ACTIVE
    uid: [APPLICATION_UID]
    updateTime: '2023-10-31T18:33:48.343303819Z'
    
    

更新现有 App Hub 应用

您也可以在应用 创建。

控制台

  1. 在 Google Cloud 控制台中,前往 App Hub 应用页面。

    打开“应用”

  2. 在应用列表中,针对您要更新的应用点击 修改

  3. 根据需要修改字段,然后点击保存

  4. 可选:在重要性列表中,选择以下选项之一以指明应用的重要性:

    • 任务关键型
  5. 可选:在环境列表中,用于指示 软件生命周期,请选择以下选项之一:

    • 生产
    • 预演版
    • 开发
    • 测试
  6. 可选:根据要求为开发者所有者添加以下详细信息。 运营商所有者企业主。请注意,您必须输入 所有者的电子邮件地址(如果您添加了显示名称)。

    1. 输入所有者的显示名称。
    2. 输入所有者的电子邮件地址。此值必须采用 username@yourdomain 格式,例如 222larabrown@gmail.com
  7. 针对每个开发者、运营者和企业主重复上述步骤。

  8. 点击保存

gcloud

  1. 使用 criticality-typeenvironment-type 以及所有者类型属性:

    gcloud apphub applications update APPLICATION_NAME \
      --display-name='APPLICATION_DISPLAY_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=HOST_PROJECT_ID \
      --location=REGION
    

    替换以下内容:

    • APPLICATION_DISPLAY_NAME:应用的显示名称。
    • CRITICALITY_LEVEL:表示应用、服务或工作负载对您的业务运营的重要程度。请提供下列值之一: <ph type="x-smartling-placeholder">
        </ph>
      • MISSION_CRITICAL
      • HIGH
      • MEDIUM
      • LOW
    • ENVIRONMENT:表示 软件生命周期请提供下列值之一: <ph type="x-smartling-placeholder">
        </ph>
      • PRODUCTION
      • STAGING
      • DEVELOPMENT
      • TEST
    • DISPLAY-NAME-DEVELOPER, DISPLAY-NAME-OPERATORDISPLAY-NAME-BUSINESS: 开发者、运营商和企业主。
    • EMAIL-NAME-DEVELOPEREMAIL-NAME-OPERATOREMAIL-NAME-BUSINESS:分别为开发者、运营商和企业所有者的电子邮件地址。这些值的格式必须为 username@yourdomain,例如 222larabrown@gmail.com
  2. 列出属性 environment-type 的值为 PRODUCTION 的应用。

    gcloud apphub applications list \
        --filter='attributes.environment.type=PRODUCTION' \
        --project=HOST_PROJECT_ID \
        --location=REGION
    

    输出类似于以下内容:

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

注册服务和工作负载

向应用注册基础架构服务和工作负载时, 服务和工作负载注册为 App Hub 资源。如果您使用占位符通过 gcloud CLI 创建应用,则三个服务项目中的服务和工作负载如下所示:

  • 服务项目 1 有两个基础架构资源,即服务 1 和服务 2。
  • 服务项目 2 包含三个基础架构资源:服务 3、工作负载 1 和工作负载 2。
  • 服务项目 3 有三个基础架构资源:服务 4、工作负载 3 工作负载 4.

控制台

  1. 在 Google Cloud 控制台中,前往 App Hub 应用页面。

    打开“应用”

  2. 点击应用的名称。 系统会显示服务和工作负载标签页,其中列出了服务项目中已注册的服务和工作负载。

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

    1. 服务和工作负载标签页上,点击注册服务/工作负载
    2. 注册服务或工作负载页面的 选择资源窗格,点击浏览以选择服务,或者 工作负载作为资源
    3. 选择资源窗格中,选择服务或工作负载,然后 点击选择
    4. 选择资源窗格中,为该服务输入名称,或者 工作负载,然后点击继续
    5. (可选)在添加属性窗格中,添加有关 服务或工作负载如需更多信息 请参阅 更新现有 App Hub 应用。 请注意,您可以为重要性Environment 字段,该字段与您在设置时设置的值不同 创建应用的过程
    6. 点击继续
    7. (可选)在添加所有者部分中,添加有关 服务或工作负载的所有者有关 请参阅 更新现有 App Hub 应用
    8. 点击注册

服务和工作负载标签页会显示已注册的服务或 工作负载如需详细了解注册状态,请参阅 App Hub 的属性和属性

gcloud

  1. 添加具有 App Hub 编辑器权限的个人。

    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
      --member='user:APP_HUB_EDITOR' \
      --role='roles/apphub.editor'
    

    APP_HUB_EDITOR 替换为拥有 宿主项目中的 App Hub Editor 角色。该值包含 格式为 username@yourdomain,例如 robert.smith@example.com

  2. 列出已关联到宿主项目的服务项目 2 中发现的工作负载。此命令会返回可注册到应用的工作负载。

    gcloud apphub discovered-workloads list \
      --filter='workload_properties.gcp_project=projects/SERVICE_PROJECT_2' \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    输出类似于以下内容,其中包含未注册的 MIG:

    ID                           WORKLOAD_REFERENCE                                                                                                      WORKLOAD_PROPERTIES
    [DISCOVERED_WORKLOAD_ID_1]   {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/regions/REGION/instanceGroups/testing-mig-1'}     {'gcpProject': 'projects/SERVICE_PROJECT_2', 'location': 'REGION'}
    [DISCOVERED_WORKLOAD_ID_2]   {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/regions/REGION/instanceGroups/testing-mig-2'}     {'gcpProject': 'projects/SERVICE_PROJECT_2', 'location': 'REGION'}
    

    复制输出中的工作负载 ID,以便在下一步中使用。

  3. 将上一步中的工作负载注册到应用。

    gcloud apphub applications workloads create WORKLOAD_NAME \
      --discovered-workload='projects/HOST_PROJECT_ID/locations/REGION/discoveredWorkloads/DISCOVERED_WORKLOAD_ID_2' \
      --display-name='mywebserver-deployment1' \
      --application=APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    替换以下内容:

    • WORKLOAD_NAME:用于注册工作负载的名称。
    • DISCOVERED_WORKLOAD_ID_2:来自以下对象的工作负载 ID 上一步的输出。
  4. 重复前两个步骤以过滤和注册您需要的工作负载 。

  5. 可选:您可以使用 criticality-typeenvironment-type 和 owner 属性更新工作负载。

    gcloud apphub applications workloads update WORKLOAD_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=HOST_PROJECT_ID \
      --location=REGION
    

    请注意,您必须为 criticality-typeenvironment-type 提供指定的值之一,但该值可以与您在创建应用时设置的值不同。

  6. 列出应用中已注册的工作负载。

    gcloud apphub applications workloads list \
      --application=APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    输出类似于以下内容:

    ID                DISPLAY_NAME                 WORKLOAD_REFERENCE                                                                                                    CREATE_TIME
    WORKLOAD_NAME     mywebserver-deployment1      {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/regions/REGION/instanceGroups/testing-mig-2'}   2023-10-31T18:34:23
    

    已注册但已分离的工作负载由 WORKLOAD_REFERENCE 字段中的空值表示。如需详细了解 注册状态,请参阅 App Hub 的属性

  7. 在已关联到宿主项目的服务项目 1 中列出发现的具有转发规则的服务。此命令会返回可注册到应用的服务。

    gcloud apphub discovered-services list \
      --filter='service_properties.gcp_project=projects/SERVICE_PROJECT_1 AND service_reference.uri~"forwardingRules"' \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    输出类似于以下内容:

    ID                           SERVICE_REFERENCE                                                                                                                    SERVICE_PROPERTIES
    [DISCOVERED_SERVICE_ID_1]    {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/REGION/forwardingRules/testing-forwarding-rule-1'}     {'gcpProject': 'projects/SERVICE_PROJECT_1', 'location': 'REGION'}
    [DISCOVERED_SERVICE_ID_2]    {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/REGION/forwardingRules/testing-forwarding-rule-2'}     {'gcpProject': 'projects/SERVICE_PROJECT_1', 'location': 'REGION'}
    

    从输出中复制服务 ID DISCOVERED_SERVICE_ID_2 以便在其中使用 下一步。

  8. 将服务项目 1 中的转发规则 testing-forwarding-rule-2 注册为服务。

    gcloud apphub applications services create SERVICE_NAME \
      --discovered-service='projects/HOST_PROJECT_ID/locations/REGION/discoveredServices/DISCOVERED_SERVICE_ID_2' \
      --display-name='mywebserver-service1' \
      --application=APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    替换以下内容:

    • SERVICE_NAME:用于注册 服务。
    • DISCOVERED_SERVICE_ID_2:上一步输出中的服务 ID。
  9. 重复前面的步骤,列出服务,过滤这些服务,然后 在服务项目 1、2 和 3 中注册服务。

  10. 使用 criticality-type 属性和 environment-type 属性。

    gcloud apphub applications services update SERVICE_NAME \
      --criticality-type='CRITICALITY_LEVEL' \
      --environment-type='ENVIRONMENT' \
      --application=APPLICATION_NAME \
      --project=HOST_PROJECT_ID  \
      --location=REGION
    
  11. 列出 APPLICATION_NAME 应用和 HOST_PROJECT_ID 宿主项目中的已注册服务。

    gcloud apphub applications services list \
      --application=APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    对于每项服务,输出类似于以下内容:

    ID                DISPLAY_NAME                 SERVICE_REFERENCE                                                                                                                  CREATE_TIME
    SERVICE_NAME      mywebserver-service1         {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/REGION/forwardingRules/testing-forwarding-rule-2'}   2023-11-01T21:38:08
    

    已注册但已分离的服务由 SERVICE_REFERENCE 字段中的空值表示。

  12. APPLICATION_NAME 应用和 HOST_PROJECT_ID 宿主项目中的服务过滤为 environment-type 属性设置为 PRODUCTION 的服务。

    gcloud apphub applications services list \
      --filter='attributes.environment.type=PRODUCTION' \
      --application=APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

App Hub 设置流程已完成。

添加或移除服务项目

您可以修改服务项目连接以构建不同的基础架构 可组合到应用中的资源

如需查看宿主项目中应用的系统指标,请执行以下操作: 将服务项目添加到宿主项目后,将服务项目添加为 将资源容器纳入宿主项目的指标范围。如需了解详情,请参阅本文档中的将服务项目添加到托管项目的指标范围。从宿主项目中移除服务项目时,请考虑移除 作为宿主项目的资源容器 指标范围(如果您之前选择了查看 托管项目)的唯一应用。如需了解详情,请参阅本文档中从宿主项目的指标范围中移除服务项目的步骤。

控制台

如需将服务项目添加到宿主项目,请执行以下操作:

  1. 在 Google Cloud 控制台中,前往 App Hub 的设置页面。

    前往“设置”

  2. 设置页面上,点击关联项目

  3. 在打开的窗格中,从显示的列表中搜索项目,然后 选中要添加为服务的项目所对应的复选框 项目。

  4. 点击选择Attached Service Project(s) 表显示选定的项目 用作宿主项目的服务项目。

  5. 点击关闭

如需从宿主项目中移除服务项目,请执行以下操作:

  1. 在 Google Cloud 控制台中,前往 App Hub 的设置页面。

    前往“设置”

  2. 设置页面上,选中所需项目所对应的复选框 移除为服务项目。

  3. 点击取消关联项目。 系统会刷新 Attached Service Project(s) 表,以仅显示 与宿主项目始终关联的其他项目

gcloud

如需将服务项目添加到宿主项目,请执行以下操作:

gcloud apphub service-projects add SERVICE_PROJECT_ID \
   --project=HOST_PROJECT_ID
SERVICE_PROJECT_ID 替换为 服务项目。
如需从宿主项目中移除服务项目,请执行以下操作:
gcloud apphub service-projects remove SERVICE_PROJECT_ID \
   --project=HOST_PROJECT_ID

查看现有的应用、服务和工作负载

您可以查看项目中的应用,以及列出 应用。

控制台

  • 如需查看项目中的应用,请在 Google Cloud 控制台中前往 App Hub 的应用页面。

    打开“应用”

  • 如需列出服务和工作负载,请执行以下操作:

    应用

    1. 在 Google Cloud 控制台中,前往 App Hub 的应用页面。

      打开“应用”

    2. 点击应用的名称。 系统会显示一个页面,其中列出了已注册到应用的服务和工作负载。

    3. 可选:如需过滤服务或工作负载,请执行以下操作:

      1. 过滤条件字段中,选择一个过滤条件,例如重要性
      2. 选择作为值。
        系统会显示已注册到应用的高重要性服务和工作负载的列表。

    服务和工作负载

    1. 在 Google Cloud 控制台中,前往 App Hub 服务和工作负载页面。

      前往“服务和工作负载”页面

    2. 区域列表中,选择您要查看服务和工作负载所在的区域。例如,选择 us-east1
      “服务和工作负载”页面会显示与 us-east1 关联的已关联服务项目中的所有服务和工作负载。

    3. 可选:如需过滤服务或工作负载,请执行以下操作:

      1. 过滤条件字段中,选择一个过滤条件,例如环境
      2. 选择 Production 作为值。
        系统会显示已注册到应用的生产环境中的服务和工作负载的列表。

gcloud

如需查看项目中的应用,请执行以下操作:

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

如需列出应用中已注册的服务,请执行以下操作:

gcloud apphub applications services list \
    --application=APPLICATION_NAME \
    --project=HOST_PROJECT_ID \
    --location=REGION

如需列出应用中已注册的工作负载,请执行以下操作:

gcloud apphub applications workloads list \
    --application=APPLICATION_NAME \
    --project=HOST_PROJECT_ID \
    --location=REGION

可选:查看应用指标

您可以查看在 App Hub 托管项目中创建的应用的系统指标。这些指标对应于黄金信号(流量、错误、延迟时间和饱和度),有助于监控应用的性能和运行状况。

  1. 在 Google Cloud 控制台中,前往 App Hub 应用页面。

    打开“应用”

  2. 点击应用的名称。

    系统随即会显示服务和工作负载标签页,其中包含服务的元数据 工作负载和工作负载

  3. 可选:如需更改指标的显示时间段,请使用时间范围选择器。默认时间范围为 1 小时

  4. 如需查看已注册服务和工作负载的系统指标,请点击 bar_chart 指标

    系统会显示一个表格,其中包含以下黄金信号:

    • 流量:所选时间段内资源的传入请求速率。
    • 服务器错误率:出现以下情况的传入请求的平均百分比: 在选定的时间段内生成 5xx 系列 HTTP 错误代码。
    • P95 延迟时间:服务请求的延迟时间的第 95 百分位 所选时间段内的汇总数据(以毫秒为单位)。
    • CPU 利用率:CPU 利用率的平均百分比, 工作负载。值 通常为 0.0 到 100.0 之间的数字,但也可能会超过 100.0。
    • 内存利用率:工作负载的内存利用率平均百分比,按指定时间段汇总。

可选:使用图表探索指标

如需为您的 App Hub 项目绘制指标图表,请使用 Metrics Explorer。您可以应用基于标签的过滤条件,以限制图表中显示的数据。如需了解详情,请参阅使用 Metrics Explorer 创建图表

您可以按以下 App Hub 系统元数据标签进行过滤(预览版):

  • apphub_application_host_project_id
  • apphub_application_id
  • apphub_application_location
  • apphub_workload_criticality_type
  • apphub_workload_environment_type
  • apphub_workload_id

如需在图表上直观呈现 App Hub 元数据标签,请按以下说明操作 操作说明。您可以按照相同的过程更新其他系统元数据 标签和 App Hub 指标

  1. 在 Google Cloud 控制台中,转到 Metrics Explorer 页面:

    进入 Metrics Explorer

    如果您使用搜索栏查找此页面,请选择子标题为监控的结果。

  2. 指标元素中,展开选择指标菜单,在过滤栏中输入 VM Instance,然后使用子菜单选择一个特定资源类型和指标:
    1. 活跃资源菜单中,选择虚拟机实例
    2. 有效指标类别菜单中,选择热门指标
    3. 活跃指标菜单中,选择 CPU 利用率
    4. 点击应用
    此指标的完全限定名称为 compute.googleapis.com/instance/cpu/utilization
  3. 配置数据的查看方式。要仅显示特定标签的指标,请按照 具体步骤: <ph type="x-smartling-placeholder">
      </ph>
    1. 过滤条件元素中,点击添加过滤条件,然后选择 apphub_application_id。对于该值,请输入 App Hub 名称。
    2. 汇总条目中,将第一个菜单设置为不汇总

    如需详细了解如何配置图表,请参阅使用 Metrics Explorer 时选择指标

清理

清理现有应用并从中移除服务项目连接 宿主项目以移除与该项目关联的资源。这会停止在服务项目中自动发现资源。

为此,您必须先删除 应用。

控制台

  1. 在 Google Cloud 控制台中,前往 App Hub 应用页面。

    打开“应用”

  2. 点击应用的名称。 系统会显示已注册到该应用的服务和工作负载列表。

  3. 取消注册服务或工作负载。

    1. 服务和工作负载标签页上,从 已注册的服务和工作负载部分,然后点击相应工作负载的名称 要取消注册的服务或工作负载。
    2. 详细信息标签页中,点击取消注册以将服务或工作负载更新为已发现资源。
      服务和工作负载标签页上,您会看到一条提醒,通知 工作负载未注册。
    3. 针对每项服务和工作负载重复这些说明。
  4. 前往应用中心的应用页面。

    打开“应用”

  5. 点击应用的名称。

  6. 在包含应用详细信息的页面上,点击删除

  7. 如需从宿主项目中移除服务项目,请参阅本文档的添加或移除服务项目部分。

  8. 如需从 宿主项目:

    1. 在 Google Cloud 控制台中,转到 设置页面:

      前往设置

      如果您使用搜索栏查找此页面,请选择子标题为监控的结果。

    2. 选择 Metric Scope
    3. Google Cloud 项目窗格中,点击移除项目,然后完成确认对话框。

gcloud

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

    gcloud apphub applications workloads list \
      --application=APPLICATION_NAME --project=HOST_PROJECT_ID \
      --location=REGION
    
  2. 从应用中取消注册工作负载:

    gcloud apphub applications workloads delete WORKLOAD_NAME \
      --application=APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    该工作负载现在是一项已发现的工作负载,可以注册到应用。

  3. 重复前面的命令,从应用中删除其余已注册的工作负载。

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

    gcloud apphub applications services list \
      --application=APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    
  5. 从应用中取消注册服务:

    gcloud apphub applications services delete SERVICE_NAME \
      --application=APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    该服务现在是可注册到应用的已发现服务。

  6. 重复上述命令,从应用中取消注册其余已注册的服务。

  7. 删除应用:

    gcloud apphub applications delete APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    
  8. 从宿主项目中移除服务项目:

    gcloud apphub service-projects remove SERVICE_PROJECT_ID \
      --project=HOST_PROJECT_ID
    
  9. 重复上一条命令,从宿主项目中移除所有服务项目 项目。

  10. 从 宿主项目(预览版):

    gcloud beta monitoring metrics-scopes delete projects/SERVICE_PROJECT_ID \
      --project=HOST_PROJECT_ID
    
  11. 重复执行上一个命令,从指标范围宿主项目中移除所有服务项目。

后续步骤