管理服务和工作负载

设置 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 Hub 中查看、更新和取消注册服务和工作负载之前,请完成以下步骤:

  1. 使用其中一种受支持的设置模型设置应用中心
  2. 向应用注册受支持的资源

所需的角色

如需获得在 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. 在资源的详细信息页面上,您可以查看显示名称、位置、注册状态和属性等详细信息。

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

  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

输出会显示资源中的详细信息,例如显示名称、位置、注册状态和属性。

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

发现的资源

发现的资源可注册到应用。请按照以下步骤列出发现的资源:

  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
    

如果您修改 Google Cloud资源的组织结构或删除底层资源,应用的注册服务和工作负载的状态可能会更改为分离。分离的服务和工作负载会保留在应用中,直到您取消注册它们为止,但 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
        }
    }
    

取消注册服务和工作负载

取消注册服务或工作负载会将其从应用中移除。底层资源不会被删除,而是会再次成为已发现的资源,可供其他应用注册。

如需取消注册服务和工作负载,请按以下步骤操作:

控制台

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

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

后续步骤