使用单个项目创建 App Hub 应用


借助 App Hub,您可以通过 App Hub 应用管理和查看 Google Cloud 项目中的基础架构资源。如需创建这些 App Hub 应用,您需要一个 App Hub 宿主项目,您可以将包含 Google Cloud 资源的服务项目附加到该项目。

本教程介绍了如何在一个项目中设置 App Hub 应用,该项目充当 App Hub 宿主和服务项目。在服务项目中,您可以部署负载均衡的代管式实例组 (MIG),并将服务项目附加到 App Hub 宿主项目。然后,在 App Hub 宿主项目中的应用中,您可以将服务项目中的所有基础架构资源注册并监控为 App Hub 服务和工作负载。

本教程适用于设置和管理 App Hub 的人员。您应具备一定的 Cloud Load Balancing 使用经验。

目标

本教程介绍如何完成以下任务:

  1. 创建或选择 Google Cloud 项目。此项目是您的应用中心宿主和服务项目。在此项目中,启用 App Hub API。
  2. 在本项目中,使用 Terraform 部署 VPC 网络、区域级外部应用负载均衡器以及负载均衡器的 MIG 后端。区域级外部应用负载平衡器包含以下资源:

    • HTTP 健康检查
    • 转发规则
    • 网址映射
    • 目标代理
    • 将托管式实例组用作后端的后端服务
    • SSL 证书(适用于 HTTPS)

    只有转发规则、网址映射、后端服务和 MIG 会在 App Hub 上作为发现的资源提供。如需了解详情,请参阅概念和数据模型

  3. 为此项目提供适当的角色和权限,以便其充当 App Hub 宿主项目。

  4. 将 App Hub 宿主项目作为 App Hub 服务项目附加,以便将服务项目中的 Google Cloud 资源作为已发现的服务和工作负载进行发现。

  5. 在 App Hub 宿主项目中创建地区性 App Hub 应用。

  6. 在 App Hub 应用中注册从服务项目中发现的服务和工作负载,并分配属性。

  7. 在 App Hub 上查看已注册的服务和工作负载的详细信息。

费用

如需估算负载均衡的代管式虚拟机解决方案使用的 Google Cloud 资源的费用,请参阅 Google Cloud 价格计算器中预先计算的估算值。

使用估算值作为起点来计算部署费用。您可以修改估算值,以反映您计划对解决方案中使用的资源进行的任何配置更改。

系统会基于某些因素(包括以下因素)做出预先计算的估算:

  • 部署资源的 Google Cloud 位置。
  • 资源的使用时间。

如需详细了解 App Hub 费用,请参阅价格页面。

准备工作

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

如果您不是项目创建者,则必须向主账号授予项目的必需权限。例如,主账号可以是 Google 账号(针对最终用户)或服务账号(针对应用和工作负载)。

如需获得完成本教程所需的权限,请让您的管理员为您授予项目的以下 IAM 角色:

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

控制台

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

    转到“项目选择器”

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

  3. Enable the required APIs.

    Enable the APIs

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。从 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. 启用 API:

    gcloud services enable apphub.googleapis.com \
       cloudresourcemanager.googleapis.com \
       compute.googleapis.com \
       config.googleapis.com \
       serviceusage.googleapis.com

准备环境

为了减少您部署此解决方案所需的工作量,GitHub 中提供了 Terraform 配置。Terraform 配置定义了解决方案需要的所有 Google Cloud 资源。 从 GitHub 下载 Terraform 配置,根据需要选择性地自定义代码,然后使用 Terraform CLI 部署解决方案。部署解决方案后,您可以继续使用 Terraform 来管理该解决方案。

使用负载均衡器和代管式实例组的 App Hub 工作负载和服务。
图 1. 使用负载均衡器和托管式实例组的 App Hub 工作负载和服务。

以下是负载均衡代管式虚拟机解决方案所部署的拓扑的请求处理流程。

  1. 用户向应用发出请求,该应用部署在 Compute Engine 上。Cloud Load Balancing 会收到此请求。

  2. Cloud Load Balancing 使用转发规则、网址映射和后端服务中的信息将流量路由到 Compute Engine 管理的实例组。

设置 Terraform 客户端

您可以在 Cloud Shell 或本地主机上运行 Terraform。本教程介绍了如何在 Cloud Shell 中运行 Terraform,其中预安装了 Terraform 并将其配置为向 Google Cloud 进行身份验证。

GitHub 代码库中提供了此解决方案的 Terraform 代码。

  1. 在 Cloud Shell 中,将 GitHub 代码库克隆到 Cloud Shell。

    git clone https://github.com/terraform-google-modules/terraform-docs-samples
    
  2. 在 Cloud Shell 中,检查当前工作目录是否为 terraform-docs-samples/lb/regional_external_http_load_balancer。这是包含此解决方案的 Terraform 配置文件的目录。如果您需要切换到该目录,请运行以下命令:

    cd terraform-docs-samples/lb/regional_external_http_load_balancer 
    
  3. 通过运行以下命令来初始化 Terraform:

    terraform init
    

    等待系统显示以下消息:

    Terraform has been successfully initialized!
    

验证并查看 Terraform 配置

  1. 确保当前工作目录为 terraform-docs-samples/lb/regional_external_http_load_balancer。如果不是,请转到该目录。

  2. 验证 Terraform 配置没有错误:

    terraform validate
    

    如果该命令返回任何错误,请在配置中进行所需的更正,然后再次运行 terraform validate 命令。重复此步骤,直到命令返回以下消息:

    Success! The configuration is valid.
    
  3. 查看配置中定义的资源:

    terraform plan
    

    terraform plan 命令的输出是在应用配置时 Terraform 预配的资源列表。

    如果要进行任何更改,请修改配置,然后再次运行 terraform validateterraform plan 命令。

预配资源

如果 Terraform 配置中不需要进一步更改,请部署资源。

  1. 确保当前工作目录为 terraform-docs-samples/lb/regional_external_http_load_balancer。如果不是,请转到该目录。

  2. 应用 Terraform 配置:

    terraform apply
    

    Terraform 会显示将创建的资源列表。

  3. 当系统提示您执行操作时,请输入 yes

    Terraform 展示一些显示部署进度的消息。

    如果无法完成部署,则 Terraform 会显示导致失败的错误。查看错误消息,并更新配置以修复错误。然后,再次运行 terraform apply 命令。

    创建完所有资源后,Terraform 会显示以下消息:

    Apply complete!
    

等待 Terraform 显示“应用完成!”消息。

Cloud Load Balancing 会将流量分发到转发规则、网址映射、后端服务和 Compute Engine MIG。后端服务、网址映射和转发规则会成为 App Hub 宿主项目中可检测到的服务。Compute Engine MIG 会成为 App Hub 宿主项目中发现的工作负载。

如果您不再需要该解决方案,可以将部署删除,以免继续为 Google Cloud 资源计费。如需了解详情,请参阅删除部署

授予 IAM 权限

向 App Hub 宿主项目提供适当的 IAM 角色和权限。

控制台

如需获得完成本教程所需的权限,请让您的管理员为您授予项目的以下所需 IAM 角色:

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

    转到 IAM

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

  3. 新主账号字段中,输入将负责管理 App Hub 的个人(托管项目中的 App Hub Admin 角色)的电子邮件地址。

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

  5. 选择 App Hub Admin 角色。

  6. 点击添加其他角色,然后从选择角色列表中选择监控查看者

  7. 点击保存

gcloud

  1. 如需向将使用 App Hub 的个人授予相应角色,请根据需要替换 IAM 角色,重复以下命令。如需了解详情,请参阅 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,例如 222larabrown@gmail.com

  2. 向管理 API Hub 的用户授予服务项目中的“API Hub 管理员”角色。他们必须拥有应用中心管理员角色,才能将服务项目添加到宿主项目。每个服务项目都需要至少有一位用户拥有此角色。在此示例中,宿主项目充当服务项目。

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

    SERVICE_PROJECT_ID 替换为 HOST_PROJECT_ID 的名称。

  3. 向管理 App Hub 的用户授予宿主项目中的 Monitoring Viewer 角色。他们必须拥有宿主项目的 Monitoring Viewer 角色,才能查看指标。

    gcloud projects add-iam-policy-binding SERVICE_PROJECT_ID \
       --member='user:HOST_PROJECT_ADMIN' \
       --role='roles/monitoring.viewer'

关联服务项目

服务项目是包含可注册到 App Hub 应用的基础架构资源的 Google Cloud 项目。如需了解详情,请参阅服务项目。在本教程中,由于我们只有一个项目,因此请将您部署资源的项目附加为 API Hub 服务项目。

控制台

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

    前往“设置”

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

  3. 在随即打开的窗格中,从显示的列表中搜索项目,然后选中 App Hub 服务项目对应的复选框。

  4. 点击选择已关联的服务项目表会将所选宿主项目显示为服务项目。

  5. 点击关闭

gcloud

将您的宿主项目作为服务项目添加到 App Hub 宿主项目。

gcloud apphub service-projects add HOST_PROJECT_ID \
  --project=HOST_PROJECT_ID

将服务项目关联到 App Hub 宿主项目后,您可以将关联的服务项目中的所有 Google Cloud 资源视为已发现的 App Hub 服务和工作负载。如需详细了解如何查看这些发现的服务和工作负载,请参阅查看现有应用、服务和工作负载

创建应用

创建一个应用来作为服务和工作负载的容器。创建应用时,您可以分配不可变属性,例如您要从中注册资源的范围类型或位置,以及重要性和环境等可变属性。您可以使用变量属性来过滤应用。如需了解详情,请参阅媒体资源和属性

控制台

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

    打开“应用”

  3. 点击创建应用

  4. 创建应用页面的选择应用区域和名称窗格中,选择地区性

  5. 区域列表中,选择 us-west1

  6. 应用名称字段中,输入 tutorial-application。此名称是唯一标识符,在您创建应用后将不可更改。

  7. 输入显示名称 Tutorial,然后点击继续。这是一个简单易记的名称,您可以对其进行更新。如需了解详情,请参阅更新现有应用

  8. 添加属性窗格中,从重要性列表中选择重要性表示应用、服务或工作负载对业务运营的重要程度。

  9. 环境字段中,选择生产环境以指明软件生命周期阶段。

  10. 点击继续

  11. 添加所有者窗格中,为开发者所有者运营商所有者企业所有者添加以下详细信息。请注意,如果您添加了显示名称,则必须输入所有者的电子邮件地址。

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

  13. 点击创建

系统会创建新应用,并将其列在应用页面上。

gcloud

  1. 选择您创建的 App Hub 宿主项目:

    gcloud config set project HOST_PROJECT_ID
  2. 在区域 us-west1 中创建一个名为 tutorial-application 的新应用,并为其指定显示名称 Tutorial。此应用名称 tutorial-application 是唯一标识符,在您创建应用后将不可更改。显示名称Tutorial是您可以更新的易记名称。如需了解详情,请参阅更新现有应用

    gcloud apphub applications create tutorial-application \
        --display-name='Tutorial' \
        --scope-type=REGIONAL \
        --project=HOST_PROJECT_ID \
        --location=us-west1
    
  3. 列出 App Hub 宿主项目中的应用:

    gcloud apphub applications list \
        --project=HOST_PROJECT_ID \
        --location=us-west1
    

    您将看到类似如下所示的输出:

    ID                    DISPLAY_NAME  CREATE_TIME
    tutorial-application  Tutorial      2023-10-31T18:33:48
    
  4. 使用 criticality-typeenvironment-type 和 owner 属性更新您的应用:

    gcloud apphub applications update tutorial-application \
      --criticality-type='HIGH' \
      --environment-type='PRODUCTION' \
      --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=us-west1
    

    替换以下内容:

    • DISPLAY-NAME-DEVELOPERDISPLAY-NAME-OPERATORDISPLAY-NAME-BUSINESS:分别为开发者、运营商和企业所有者的显示名称。
    • EMAIL-NAME-DEVELOPEREMAIL-NAME-OPERATOREMAIL-NAME-BUSINESS:分别为开发者、运营商和企业所有者的电子邮件地址。这些值必须采用 username@yourdomain 格式,例如 222larabrown@gmail.com

    注意:

    • criticality-type:指示应用、服务或工作负载对业务运营的重要性。
    • environment-type:表示软件生命周期的阶段。
  5. 获取您创建的应用的详细信息:

    gcloud apphub applications describe tutorial-application \
      --project=HOST_PROJECT_ID \
      --location=us-west1
    

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

    attributes:
    businessOwners:
    – displayName: [DISPLAY-NAME-BUSINESS]
      email: [EMAIL-BUSINESS]
    criticality:
      type: HIGH
    developerOwners:
    – displayName: [DISPLAY-NAME-DEVELOPER]
      email: [EMAIL-DEVELOPER]
    environment:
      type: PRODUCTION
    operatorOwners:
    – displayName: [DISPLAY-NAME-OPERATOR]
      email: [EMAIL-OPERATOR]
    createTime: '2023-10-31T18:33:48.199394108Z'
    displayName: Tutorial
    name: projects/HOST_PROJECT_ID/locations/us-west1/applications/tutorial-application
    scope:
      type: REGIONAL
    state: ACTIVE
    uid: 9d991a9d-5d8a-4c0d-b5fd-85e39fb58c73
    updateTime: '2023-10-31T18:33:48.343303819Z'
    

注册服务和工作负载

注册服务和工作负载会将其添加到应用中,以便您监控添加的资源。

控制台

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

    打开“应用”

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

  3. 注册服务:

    1. 服务和工作负载标签页上,点击注册服务/工作负载
    2. 注册服务或工作负载页面的选择资源窗格中,点击浏览,然后选择服务或工作负载作为资源
    3. 选择资源窗格中,选择服务的名称 l7-xlb-backend-service,然后点击选择
    4. 选择资源窗格中,输入资源的名称 tutorial-service-backend
    5. 输入显示名称 Backend service,然后点击继续
    6. 添加属性窗格中的重要性列表中,选择以指明应用的重要性。
    7. 环境字段中,选择生产环境以指明软件生命周期阶段。
    8. 点击继续
    9. 添加所有者窗格中,根据开发者所有者运营商所有者企业所有者的要求,添加以下详细信息。请注意,如果您添加显示名称,则必须输入所有者的电子邮件地址。
      1. 输入所有者的显示名称。
      2. 输入所有者的电子邮件地址。此值必须采用 username@yourdomain 格式,例如 222larabrown@gmail.com
    10. 对每个开发者、运营商和企业所有者重复上述步骤。
    11. 点击注册

    服务和工作负载标签页的已注册的服务和工作负载部分,您可以看到添加的新服务。

  4. 重复前面的步骤,将其他服务分别注册为 tutorial-service-forwarding-ruletutorial-service-url-map

  5. 重复之前注册服务的步骤来注册工作负载,但存在以下例外情况:

    1. 注册服务或工作负载窗格中的选择服务或工作负载部分,选择工作负载的名称 l7-xlb-backend-example,然后点击继续
    2. 选择资源窗格中,输入资源的名称 tutorial-workload-mig
    3. 输入显示名称 Workload instance group,然后点击继续。在服务和工作负载标签页的已注册的服务和工作负载部分,您可以看到添加的新工作负载。

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 托管项目中具有 App Hub 编辑者角色的用户。此值的格式为 username@yourdomain,例如 222larabrown@gmail.com

  2. 列出 App Hub 宿主项目中发现的所有服务。 此命令会返回可注册到应用的服务。

    gcloud apphub discovered-services list \
        --project=HOST_PROJECT_ID \
        --location=us-west1
    

    您将看到类似如下所示的输出:

    ID                             SERVICE_REFERENCE                                                                                                              SERVICE_PROPERTIES
    BACKEND_SERVICE_ID          {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/regions/us-west1/backendServices/l7-xlb-backend-service'}  {'gcpProject': 'projects/SERVICE_PROJECT_ID', 'location': 'us-west1'}
    FORWARDING_RULE_SERVICE_ID" {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/regions/us-west1/forwardingRules/l7-xlb-forwarding-rule'}  {'gcpProject': 'projects/SERVICE_PROJECT_ID', 'location': 'us-west1'}
    URL_MAP_SERVICE_ID          {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/regions/us-west1/urlMaps/regional-l7-xlb-map'}             {'gcpProject': 'projects/SERVICE_PROJECT_ID', 'location': 'us-west1'}
    

    从输出中复制服务 ID(例如 BACKEND_SERVICE_SP2_ID),以便在下一步中使用。

  3. 将上一步中的服务注册到您的应用。从上一步中的输出字段复制服务 ID。

    gcloud apphub applications services create tutorial-service-backend \
        --discovered-service='projects/HOST_PROJECT_ID/locations/us-west1/discoveredServices/BACKEND_SERVICE_ID' \
        --display-name='Backend service' \
        --criticality-type='HIGH' \
        --environment-type='PRODUCTION' \
        --application=tutorial-application \
        --project=HOST_PROJECT_ID \
        --location=us-west1
    
    gcloud apphub applications services create tutorial-service-forwarding-rule \
        --discovered-service='projects/HOST_PROJECT_ID/locations/us-west1/discoveredServices/FORWARDING_RULE_SERVICE_ID' \
        --display-name='Forwarding rule' \
        --criticality-type='HIGH' \
        --environment-type='PRODUCTION' \
        --application=tutorial-application \
        --project=HOST_PROJECT_ID \
        --location=us-west1
    
    gcloud apphub applications services create tutorial-service-url-map \
        --discovered-service='projects/HOST_PROJECT_ID/locations/us-west1/discoveredServices/URL_MAP_SERVICE_ID' \
        --display-name='URL map' \
        --criticality-type='HIGH' \
        --environment-type='PRODUCTION' \
        --application=tutorial-application \
        --project=HOST_PROJECT_ID \
        --location=us-west1
    

    替换以下内容:

    • BACKEND_SERVICE_ID:要注册的后端服务的服务 ID
    • FORWARDING_RULE_SERVICE_ID:您要注册的转发规则的服务 ID
    • URL_MAP_SERVICE_ID:您要注册的网址映射的服务 ID
  4. 列出应用中的所有已注册服务。

    gcloud apphub applications services list \
        --application=tutorial-application \
        --project=HOST_PROJECT_ID \
        --location=us-west1
    

    您将看到类似如下所示的输出:

    ID                               DISPLAY_NAME      SERVICE_REFERENCE                                                                                                              CREATE_TIME
    tutorial-service-backend         Backend service   {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/regions/us-west1/backendServices/l7-xlb-backend-service'}  2024-02-13T00:31:45
    tutorial-service-forwarding-rule Forwarding rule   {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/regions/us-west1/forwardingRules/l7-xlb-forwarding-rule'}  2024-02-13T00:31:45
    tutorial-service-url-map         URL map           {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/regions/us-west1/urlMaps/regional-l7-xlb-map'}             2024-02-13T00:31:45
    

    已注册但已分离的服务由 SERVICE_REFERENCE 字段中的空值表示。如需详细了解注册状态,请参阅 App Hub 的属性和特性

  5. 列出 App Hub 宿主项目中发现的所有工作负载。 此命令会返回可注册到应用的工作负载。

    gcloud apphub discovered-workloads list \
        --project=HOST_PROJECT_ID \
        --location=us-west1
    

    您将看到类似如下所示的输出:

    ID                            WORKLOAD_REFERENCE                                                                                                            WORKLOAD_PROPERTIES
    INSTANCE_GROUP_ID          {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/zones/us-west1-a/instanceGroups/l7-xlb-backend-example'}  {'gcpProject': 'projects/SERVICE_PROJECT_ID', 'location': 'us-west1', 'zone': 'us-west1-a'}
    

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

  6. 将上一步中的工作负载注册为应用中的 tutorial-workload-mig。从上一步中的输出字段复制工作负载 ID。

    gcloud apphub applications workloads create tutorial-workload-mig \
        --discovered-workload='projects/HOST_PROJECT_ID/locations/us-west1/discoveredWorkloads/WORKLOAD_ID' \
        --display-name='Workload instance group' \
        --application=tutorial-application \
        --project=HOST_PROJECT_ID \
        --location=us-west1
    

    WORKLOAD_ID 替换为您要注册的工作负载的 ID。

  7. 列出应用中的所有已注册工作负载。

    gcloud apphub applications workloads list \
        --application=tutorial-application \
        --project=HOST_PROJECT_ID \
        --location=us-west1
    

    您将看到类似如下所示的输出:

    ID                        DISPLAY_NAME              WORKLOAD_REFERENCE                                                                                                            CREATE_TIME
    tutorial-workload-mig     Workload instance group   {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/zones/us-west1-a/instanceGroups/l7-xlb-backend-example'}  2024-02-13T00:31:45
    

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

查看所有服务和工作负载

您可以查看关联到 App Hub 宿主项目的服务项目中的服务和工作负载的详细信息。

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

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

    系统会显示关联的 App Hub 服务项目中的所有服务和工作负载。

  2. 区域列表中,选择 us-west1。 系统会显示工作负载实例组工作负载,以及应用中心类型重要性已注册到等详细信息。

  3. 如需根据状态过滤服务或工作负载,请执行以下操作:

    1. 过滤条件字段中,选择过滤条件,例如注册状态
    2. 点击已注册。系统会显示已注册到应用的服务和工作负载的列表。

查看应用指标

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

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

    打开“应用”

  2. 点击应用名称 Tutorial

    系统会显示服务和工作负载标签页,其中包含已注册到应用的服务和工作负载的元数据。

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

清理

为避免因本教程中使用的资源导致您的 Google Cloud 账号产生费用,请删除包含这些资源的项目,或者保留项目但删除各个资源。

删除 App Hub 资源

控制台

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

    打开“应用”

  2. 点击应用名称“Tutorial”

  3. 服务和工作负载标签页的已注册的服务和工作负载部分中,点击相应服务的名称。

  4. 服务和工作负载页面上,点击取消注册

    系统会发出提醒,告知您服务未注册。

  5. 服务和工作负载标签页的已注册的服务和工作负载部分中,点击工作负载的名称。

  6. 详细信息标签页中,点击取消注册

    系统会发出提醒,告知您工作负载已取消注册。

  7. 前往应用中心的应用页面。

    打开“应用”

  8. 点击应用的名称。

  9. tutorial-application 页面上,点击 Delete(删除)。

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

    前往“设置”

  11. 设置页面上,选中要从 App Hub 托管项目中移除的服务项目对应的复选框。

  12. 点击分离项目

gcloud

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

    gcloud apphub applications services list \
      --application=tutorial-application --project=HOST_PROJECT_ID \
      --location=us-west1
    
  2. 从应用中取消注册服务:

    gcloud apphub applications services delete SERVICE_NAME \
      --application=tutorial-application --project=HOST_PROJECT_ID \
      --location=us-west1
    

    SERVICE_NAME 替换为服务的名称。

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

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

    gcloud apphub applications workloads list \
      --application=tutorial-application --project=HOST_PROJECT_ID \
      --location=us-west1
    
  4. 从应用中取消注册工作负载:

    gcloud apphub applications workloads delete WORKLOAD_NAME \
      --application=tutorial-application --project=HOST_PROJECT_ID \
      --location=us-west1
    

    WORKLOAD_NAME 替换为工作负载的名称。

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

  5. 删除应用:

    gcloud apphub applications delete tutorial-application \
      --project=HOST_PROJECT_ID \
      --location=us-west1
    
  6. 从 App Hub 宿主项目中移除服务项目:

    gcloud apphub service-projects remove SERVICE_PROJECT_ID \
      --project=HOST_PROJECT_ID
    

删除部署

如果不再需要该解决方案,为避免继续为您在此解决方案中创建的资源计费,请删除所有资源。

如果您使用 Terraform CLI 部署了解决方案,请按照以下步骤操作。

  1. 在 Cloud Shell 中,确保当前工作目录为 terraform-docs-samples/lb/regional_external_http_load_balancer。如果不是,请转到该目录。

  2. 移除 Terraform 预配的资源:

    terraform destroy
    

    Terraform 会显示将被销毁的资源列表。

  3. 当系统提示您执行操作时,请输入 yes

    Terraform 会显示显示进度的消息。删除所有资源后,Terraform 将显示以下消息:

    Destroy complete!
    

如果您不再需要用于此解决方案的 Google Cloud 项目,则可以删除该项目。

删除项目

控制台

  1. 在 Google Cloud 控制台中,前往管理资源页面。

    转到“管理资源”

  2. 在项目列表中,选择要删除的项目,然后点击删除
  3. 在对话框中输入项目 ID,然后点击关闭以删除项目。

gcloud

如需删除 Google Cloud 项目,请执行以下操作:

gcloud projects delete PROJECT_ID

PROJECT_ID 替换为宿主项目或服务项目 ID。

后续步骤