设置 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 Admin、App Hub Editor 或 App Hub Viewer。
  5. 创建应用。
  6. 将服务和工作负载注册到该应用。

服务和工作负载

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

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

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

App Hub 支持具有 HTTP 或 HTTPS 流量的区域级 L7 外部和内部应用负载平衡器。

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

总体设置流程

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

  1. 确定要包含在应用中的现有资源及其属于哪些项目
  2. 创建 App Hub 宿主项目并在项目中启用 App Hub API。(可选)根据企业的组织结构,创建多个宿主项目。如果您要创建多个项目,建议您在一个新文件夹中创建这些项目。
  3. 关联服务项目。配置宿主项目后,将具有应用所需的底层资源的服务项目关联到宿主项目。请注意以下几点:
    1. 服务项目必须与宿主项目位于同一组织中。将服务项目关联到宿主项目后,无法将其移动到其他组织。如需将服务项目移动到其他组织,您必须按照本文档中的说明,移除或分离服务项目与宿主项目的连接。然后,您可以将服务项目关联到其他组织。
    2. 一个服务项目不能关联到多个宿主项目。
    3. 宿主项目可以是自己的服务项目,但不能是任何其他宿主项目的服务项目。
    4. 将服务项目关联到宿主项目后,在宿主项目中查询服务或工作负载会自动返回所有服务项目中的所有服务和工作负载。
  4. 创建用于整理多个工作负载和服务的应用。请注意以下事项:
    1. 确保应用的名称在宿主项目和位置中是唯一的。
    2. 一个服务项目可以关联到包含多个应用的宿主项目,但其各个资源只能注册到一个应用。
  5. 查询服务和工作负载,并将其注册到应用。 创建应用后,您可以查询宿主项目以获取可用的服务和工作负载。这些查询会针对宿主项目以及连接到宿主项目的所有服务项目运行。它们还会返回这些项目中的所有服务和工作负载。请注意以下几点:
    1. 您只能将一项服务或工作负载注册到单个应用。
    2. 您注册的任何工作负载和服务都必须与应用位于同一区域。
    3. 已注册的服务和工作负载不受底层基础架构资源的更新影响。换句话说,如果您删除充当服务和工作负载的底层资源,App Hub 不会从应用中删除关联的工作负载和服务。您必须单独取消注册工作负载或服务。

前提条件

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

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

请注意以下几点:

  • 宿主项目可以关联一个或多个服务项目。
  • 一个服务项目不能关联到多个宿主项目。
  • 将服务项目关联到宿主项目的人员必须在服务项目和宿主项目中都具有 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. 启用所需的 API。

    启用 API

  4. 如果您是项目创建者,则会被授予基本 Owner 角色 (roles/owner)。默认情况下,此 Identity and Access Management (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. 在 Google Cloud 控制台中,激活 Cloud Shell。

    激活 Cloud Shell

    Cloud Shell 会话随即会在 Google Cloud 控制台的底部启动,并显示命令行提示符。Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境。该会话可能需要几秒钟时间来完成初始化。

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

    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)。默认情况下,此 Identity and Access Management (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 的个人。他们必须具有 App Hub Admin 角色才能将服务项目添加到宿主项目。每个服务项目至少需要一个具有此角色的人员。一个人可以在多个服务项目中拥有该角色。

      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:在此示例中有三个服务项目中的第一个。
      • 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
    

创建应用

如果您还没有应用,请创建一个用作服务和工作负载的容器的应用。

控制台

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

    打开“应用”

  3. 点击创建应用。系统随即会显示创建应用窗格。

  4. 选择区域

  5. 输入 Application name,然后点击 Continue

  6. 添加属性部分中,输入显示名称

  7. (可选)在后面的字段中添加应用的更多详细信息。如需了解详情,请参阅本文档中的更新现有 App Hub 应用

  8. 点击创建

gcloud

  1. 创建一个名为 APPLICATION_NAME 的新应用,并为其指定显示名称 APPLICATION_DISPLAY_NAME--scope-type 标志定义哪些服务和工作负载可以注册到应用。仅支持 REGIONAL,这意味着只能注册与应用位于同一区域的服务和工作负载。

    gcloud apphub applications create APPLICATION_NAME \
      --display-name='APPLICATION_DISPLAY_NAME' \
      --scope-type=REGIONAL \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    请替换以下内容:

    • APPLICATION_NAME:您的应用的名称。名称只能包含小写字母数字字符,不得包含空格。
    • APPLICATION_DISPLAY_NAME:应用的显示名。
    • REGION:应用的区域。为其指定值 us-east1
  2. 列出宿主项目中的应用。

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

    输出类似于以下内容:

    ID: APPLICATION_NAME
    DISPLAY_NAME: APPLICATION_DISPLAY_NAME
    CREATE_TIME: 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: REGIONAL
    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 \
      --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_LEVEL:表示应用、服务或工作负载对业务运营的重要程度。请提供以下某个值:
      • MISSION_CRITICAL
      • HIGH
      • MEDIUM
      • LOW
    • ENVIRONMENT:指示软件生命周期的阶段。请提供以下某个值:
      • PRODUCTION
      • STAGING
      • DEVELOPMENT
      • TEST
    • DISPLAY-NAME-DEVELOPERDISPLAY-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: APPLICATION_NAME
    DISPLAY_NAME: APPLICATION_DISPLAY_NAME
    CREATE_TIME: 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. (可选)在后面的字段中为服务或工作负载添加更多详细信息。如需了解详情,请参阅本文档中的更新现有 App Hub 应用。请注意,您必须为重要性环境字段提供一个指定的值,但该值可以与您在创建应用时设置的值不同。
    5. 点击注册服务和工作负载标签页会显示已注册的服务或工作负载。如需详细了解注册状态,请参阅 App Hub 的属性

gcloud

  1. 添加拥有 App Hub Editor 权限的个人。

    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: [DISCOVERED_WORKLOAD_ID_1]
    WORKLOAD_REFERENCE: {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/regions/REGION/instanceGroups/testing-mig-1'}
    WORKLOAD_PROPERTIES: {'gcpProject': 'projects/SERVICE_PROJECT_2', 'location': 'REGION'}
    
    ID: [DISCOVERED_WORKLOAD_ID_2]
    WORKLOAD_REFERENCE: {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/regions/REGION/instanceGroups/testing-mig-2'}
    WORKLOAD_PROPERTIES: {'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. 重复前面两个步骤,以过滤和注册服务项目 3 中所需的工作负载。

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

    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: WORKLOAD_NAME
    DISPLAY_NAME: mywebserver-deployment1
    WORKLOAD_REFERENCE: {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/regions/REGION/instanceGroups/testing-mig-2'}
    CREATE_TIME: 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: [DISCOVERED_SERVICE_ID_1]
    SERVICE_REFERENCE: {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/REGION/forwardingRules/testing-forwarding-rule-1'}
    SERVICE_PROPERTIES: {'gcpProject': 'projects/SERVICE_PROJECT_1', 'location': 'REGION'}
    
    ID: [DISCOVERED_SERVICE_ID_2]
    SERVICE_REFERENCE: {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/REGION/forwardingRules/testing-forwarding-rule-2'}
    SERVICE_PROPERTIES: {'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: SERVICE_NAME
    DISPLAY_NAME: mywebserver-service1
    SERVICE_REFERENCE: {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/REGION/forwardingRules/testing-forwarding-rule-2'}
    CREATE_TIME: 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. 点击选择关联的服务项目表格会显示所选项目作为宿主项目的服务项目。

  5. 点击关闭

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

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

    前往“设置”

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

  3. 点击分离项目。 系统会刷新关联的服务项目表,仅显示仍附加到宿主项目的项目。

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. 选择正式版作为值。
        系统会显示生产环境中已注册到应用的服务和工作负载列表。

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

清理

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

为此,您必须先删除注册到应用的工作负载和服务。

控制台

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

    打开“应用”

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

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

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

    打开“应用”

  5. 点击应用的名称。

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

  7. 在本文档中,请按照添加或移除服务项目中的说明从宿主项目中移除服务项目。

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. 重复上述命令,从宿主项目中移除所有服务项目。

后续步骤