管理服务和工作负载

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

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

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

    前往 App Design Center

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

    前往 App Hub

本页面介绍了如何管理在 App Hub 中发现或直接注册的服务和工作负载。您可以使用 Google Cloud 控制台或 Google Cloud CLI 执行这些操作。对于从模板部署的应用,请参阅 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 概念和数据模型

控制台

查看注册状态值为 registereddetached 的应用的详细信息:

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

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

    打开“应用”

    该页面会显示您的申请列表。

  3. 点击要查看服务或工作负载详情的应用的名称。

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

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

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

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

    前往“服务和工作负载”

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

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

gcloud

查看注册状态值为 registereddetached 的应用的详细信息:

  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
    

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

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

更新服务和工作负载属性

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

控制台

  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
        }
    }
    

取消注册服务和工作负载

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

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

控制台

  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 中移除注册信息。

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

后续步骤