管理服务和工作负载

选择应用设置模型时,您需要在管理项目中为 App Hub 应用定义应用管理边界。然后,您可以在此边界内的应用中注册服务和工作负载。 如需了解有关引入应用管理实践的推荐用例,请参阅 为应用生命周期管理做准备

为避免配置漂移并保持明确的真实来源,我们建议您在最初定义应用组件的环境中管理这些组件:

  • 对于从 App Design Center 模板部署的应用: 使用 App Design Center 管理和更新应用。 您可以 修改模板 以更改应用设计,也可以 创建应用修订版本 以更新设置,例如应用和组件详细信息。

    前往 App Design Center

  • 对于通过在 App Hub 中注册现有资源而创建的应用: 直接在 App Hub 中管理应用、服务和工作负载。

    前往 App Hub

本页面介绍如何管理直接在 App Hub 中发现或注册的服务和工作负载。您可以使用 控制台或 Google Cloud CLI Google Cloud 执行这些操作。对于从 模板部署的应用 ,请参阅 App Design Center 文档。

准备工作

本文档假定您有一个已注册 支持的资源的应用。

所需角色

如需获得在 App Hub 中管理服务和工作负载所需的权限,请让管理员向您授予定义应用管理边界的管理项目的以下 IAM 角色:

  • 更新和取消注册服务和工作负载: App Hub Editor (roles/apphub.editor)
  • 查看服务、工作负载及其详细信息: App Hub Viewer (roles/apphub.viewer)

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

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

如需详细了解 App Hub 角色,请参阅 App Hub IAM 角色和权限

查看服务和工作负载的详细信息

请按照以下步骤查看应用管理边界内的服务和工作负载的详细信息,包括:

如需详细了解这些详细信息,请参阅 App Hub 概念和数据模型

控制台

查看注册状态值为已注册已分离的应用的服务和工作负载的详细信息:

  1. 在 Google Cloud 控制台中,使用项目选择器选择您的 管理项目。

  2. 从 App Hub 前往应用 页面:

    打开“应用”

    该页面会显示您的应用列表。

  3. 点击您要查看其服务或工作负载详细信息的应用的名称。

  4. 服务和工作负载 标签页中,点击您要查看的服务或工作负载的名称。

  5. 在组件的详细信息 页面中,您可以查看显示名称、位置、注册状态、属性和特性等信息。

或者,查看注册状态值为已发现已注册的所有服务和工作负载 的列表:

  1. 从 App Hub 前往服务和工作负载 页面:

    前往“服务和工作负载”

    该页面会显示所有已发现和已注册的服务和工作负载的列表。

  2. 使用过滤条件 字段,按属性、 特性或状态缩小结果范围,使用环境所有者注册状态等值。

gcloud

查看注册状态值为已注册已分离的应用的服务和工作负载的详细信息:

  1. 查找管理项目的项目 ID

  2. 描述应用中的服务或工作负载,以查看其详细信息,包括属性和特性:

    • 描述服务:

      gcloud apphub applications services describe SERVICE \
          --project=PROJECT_ID \
          --application=APPLICATION \
          --location=LOCATION
      

      替换以下内容:

      • SERVICE:服务的 ID。
      • PROJECT_ID:您的管理项目的 ID。
      • APPLICATION:服务注册到的应用的 ID。
      • LOCATION:服务的位置。 对于全局资源,请使用 global;对于区域级资源,请使用特定区域,例如 us-east1
    • 描述工作负载:

      gcloud apphub applications workloads describe WORKLOAD \
          --project=PROJECT_ID \
          --application=APPLICATION \
          --location=LOCATION
      

      替换以下内容:

      • WORKLOAD:工作负载的 ID。
      • PROJECT_ID:您的管理项目的 ID。
      • APPLICATION:工作负载注册到的应用的 ID。
      • LOCATION:工作负载的位置。 对于全局资源,请使用 global;对于区域级资源,请使用特定区域,例如 us-east1

输出会显示组件的详细信息,例如显示名称、位置和注册状态。如果资源中存在 属性和特性, 输出中也会显示这些信息。

或者,查看注册状态值为已发现已注册的所有服务和工作负载 的列表:

已发现

应用管理边界内的已发现 Google Cloud 资源 可以注册为应用中的服务或工作负载。 请按照以下步骤列出已发现的资源:

  1. 列出已发现的服务:

    gcloud apphub discovered-services list \
        --project=PROJECT_ID \
        --location=LOCATION
    

    替换以下内容:

    • PROJECT_ID:您的管理项目的 ID。
    • LOCATION:您要在其中发现资源的位置。对于全局资源,请使用 global;对于区域级资源,请使用特定区域,例如 us-east1
  2. 列出已发现的工作负载:

    gcloud apphub discovered-workloads list \
        --project=PROJECT_ID \
        --location=LOCATION
    

已注册

已注册的服务和工作负载是应用的一部分。请按照以下步骤列出特定应用的已注册组件。 您可以使用 --filter 标志根据属性过滤列表:

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

    gcloud apphub applications services list \
        --application=APPLICATION_NAME \
        --project=PROJECT_ID \
        --location=LOCATION \
        --filter=FILTER_EXPRESSION
    

    替换以下内容:

    • APPLICATION_NAME:应用的名称。您可以在创建应用时指定此值。
    • PROJECT_ID:您的管理项目的 ID。
    • LOCATION:组件位置。 对于全局组件,请使用 global;对于区域级组件,请使用特定区域,例如 us-east1
    • 可选:FILTER_EXPRESSION:用于指定属性的过滤表达式。例如,如需列出环境类型为 PRODUCTION 的组件,请使用 attributes.environment.type=PRODUCTION
  2. 列出应用中已注册的工作负载:

    gcloud apphub applications workloads list \
        --application=APPLICATION_NAME \
        --project=PROJECT_ID \
        --location=LOCATION \
        --filter=FILTER_EXPRESSION
    

如果您将项目或文件夹移出应用管理边界或删除底层资源,应用中服务和工作负载的注册状态可能会更改为“已分离”。 已分离的服务和工作负载会保留在应用中,直到您取消注册它们,但 App Hub 无法再管理或监控它们。如需了解详情,请参阅 服务和工作负载的注册状态

如需将服务或工作负载重新附加到应用,您必须 重新注册 它们。

查看扩展元数据架构

App Hub 会使用元数据丰富您的服务和工作负载,以提高可发现性、治理能力以及与其他系统的集成能力。您可以使用 App Hub API 搜索可用的元数据架构并查看其定义。

请按照以下步骤查看扩展元数据属性的架构定义,列出所有可用架构或获取特定架构的详细信息(如果可用)。

如需详细了解扩展元数据属性,请参阅 属性和特性。 如需查看支持的元数据类型及其架构的列表,请参阅 扩展元数据架构

gcloud

  • 列出项目和位置中的所有可用扩展元数据架构:

    gcloud alpha apphub extended-metadata-schemas list \
        --project=PROJECT_ID \
        --location=LOCATION \
    

    替换以下内容:

    • PROJECT_ID:您的管理项目的 ID。
    • LOCATION:组件位置。 对于全局组件,请使用 global;对于区域级组件,请使用特定区域,例如 us-east1
  • 查看特定架构的详细信息:

    gcloud alpha apphub extended-metadata-schemas describe SCHEMA_NAME \
        --project=PROJECT_ID \
        --location=LOCATION \
    

    SCHEMA_NAME 替换为架构的完整名称,例如 apphub.googleapis.com/AgentProperties

Terraform

您可以使用 Terraform 中的数据源检索特定架构的详细信息。以下示例可让您查看 us-central1 位置的 my-project-id 项目中功能类型为 AGENT 的工作负载的 apphub.googleapis.com/AgentProperties 架构的详细信息。

data "google_apphub_extended_metadata_schema" "agent_properties" {
  project  = "my-project-id"
  location = "us-central1"
  name     = "apphub.googleapis.com/AgentProperties"
}

更新服务和工作负载属性

如需修改在应用中注册的服务和工作负载的属性 ,请按以下步骤操作:

控制台

  1. 在 Google Cloud 控制台中,使用项目选择器选择您的 管理项目。

  2. 从 App Hub 前往应用 页面:

    打开“应用”

    该页面会显示您的应用列表。

  3. 点击您要更新其服务或工作负载属性的应用的名称。

  4. 服务和工作负载 标签页中,找到您要更新的服务或工作负载的名称。

  5. 依次点击 more_vert 更多, 然后点击 修改服务 修改工作负载

  6. 在打开的窗格中,根据需要修改字段,然后点击保存

gcloud

  1. 查找管理项目的项目 ID

  2. 更新服务或工作负载属性:

    • 更新服务属性:

      gcloud apphub applications services update SERVICE_NAME \
          --application=APPLICATION_NAME \
          --project=PROJECT_ID \
          --location=LOCATION \
          --display-name=DISPLAY_NAME \
          --criticality-type=CRITICALITY_LEVEL \
          --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 替换为您要更新的服务的名称。

    • 更新工作负载属性:

      gcloud apphub applications workloads update WORKLOAD_NAME \
          --application=APPLICATION_NAME \
          --project=PROJECT_ID \
          --location=LOCATION \
          --display-name=DISPLAY_NAME \
          --criticality-type=CRITICALITY_LEVEL \
          --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 替换为您要更新的工作负载的名称。

      替换以下必填和可选标志:

      • 必填:APPLICATION_NAME:应用的名称。您可以在创建应用时指定此值。
      • 必填:PROJECT_ID:您的管理项目的 ID。
      • 必填:LOCATION:组件位置。对于全局组件,请使用 global;对于区域级组件,请使用特定区域,例如 us-east1
      • 可选:DISPLAY_NAME:组件的显示名称。
      • 可选:CRITICALITY_LEVEL:组件的重要性级别。请使用以下某个值:

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

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

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

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

Terraform

如需使用 Terraform 更新服务或工作负载属性,请修改配置文件中相应 资源块中的实参。google_apphub_servicegoogle_apphub_workload应用更改后,Terraform 会更新资源以与新配置保持一致。

以下示例更新了区域级应用的服务和工作负载的重要性属性和环境属性:

  • 更新服务属性:

    resource "google_apphub_service" "example" {
        # ... other arguments
        attributes {
            criticality {
                type = "HIGH" # Updated criticality
            }
            environment {
                type = "PRODUCTION"
            }
            # ... other attributes
        }
    }
    
  • 更新工作负载属性:

    resource "google_apphub_workload" "example" {
        # ... other arguments
        attributes {
            criticality {
                type = "HIGH" # Updated criticality
            }
            environment {
                type = "PRODUCTION"
            }
            # ... other attributes
        }
    }
    

取消注册服务和工作负载

取消注册服务或工作负载会将其从应用中移除。底层资源不会被删除。如果它仍在您的 应用管理边界内,则会成为注册状态值为 “已发现”的资源,可注册到其他应用。

请按照以下步骤取消注册服务和工作负载:

控制台

  1. 在 Google Cloud 控制台中,使用项目选择器选择您的 管理项目。

  2. 从 App Hub 前往应用 页面:

    打开“应用”

    该页面会显示您的应用列表。

  3. 点击您要取消注册服务或工作负载的应用的名称。

  4. 服务和工作负载 标签页中,点击您要取消注册的服务或工作负载的名称。

  5. 在组件的详情页面中,点击取消注册

gcloud

  1. 查找管理项目的项目 ID

  2. 取消注册服务或工作负载:

    • 取消注册服务:

      gcloud apphub applications services delete SERVICE_NAME \
          --application=APPLICATION_NAME \
          --project=PROJECT_ID \
          --location=LOCATION
      

      替换以下内容:

      • SERVICE_NAME:您要取消注册的服务的名称。
      • APPLICATION_NAME:应用的名称。您可以在创建应用时指定此值。
      • PROJECT_ID:您的管理项目的 ID。
      • LOCATION:组件位置。对于全局组件,请使用 global;对于区域级组件,请使用特定区域,例如 us-east1
    • 取消注册工作负载:

      gcloud apphub applications workloads delete WORKLOAD_NAME \
          --application=APPLICATION_NAME \
          --project=PROJECT_ID \
          --location=LOCATION
      

      WORKLOAD_NAME 替换为您要取消注册的工作负载的名称。

Terraform

如需取消注册由 Terraform 管理的服务或工作负载,请从配置文件中移除相应的 google_apphub_servicegoogle_apphub_workload 资源块,然后运行 terraform apply。应用更改后,Terraform 会从 App Hub 中移除注册。

取消注册所有服务和工作负载后,您可以 删除应用

后续步骤