设置 App Hub 时,您会为应用创建管理边界。此边界可以是管理项目,也可以是您为应用管理配置的宿主项目和服务项目的集合,具体取决于您的设置模式。服务和工作负载在此管理边界内注册为应用。
为避免配置漂移并保持清晰的可靠来源,我们建议您在最初定义应用资源的环境中管理这些资源:
- 对于根据 App Design Center 模板部署的应用:请使用 App Design Center 管理和更新应用。 您可以修改模板以更改应用设计,也可以创建应用修订版本来更新应用和组件详细信息等设置。 
- 对于通过在 App Hub 中注册资源创建的应用:直接在 App Hub 中管理应用、其服务和工作负载。 
本页面介绍了如何管理直接在 App Hub 中发现或注册为应用的服务和工作负载。您可以使用 Google Cloud 控制台或 Google Cloud CLI 执行这些操作。对于根据模板部署的应用,请参阅应用设计中心文档。
准备工作
在 App Hub 中查看、更新和取消注册服务和工作负载之前,请完成以下步骤:
- 使用其中一种受支持的设置模型设置应用中心。
- 向应用注册受支持的资源。
所需的角色
如需获得在 App Hub 中管理服务和工作负载所需的权限,请让管理员向您授予设置模型中的应用管理边界(管理项目或宿主项目和服务项目)的以下 IAM 角色:
- 
            更新和取消注册服务和工作负载:
              
  
  
    
      App Hub Editor  (roles/apphub.editor)
- 
            查看服务和工作负载:
              
  
  
    
      App Hub Viewer  (roles/apphub.viewer)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
如需详细了解 App Hub 角色,请参阅 App Hub IAM 角色和权限。
查看服务和工作负载的详细信息
如需在 App Hub 管理边界内查看服务和工作负载的详细信息(包括其位置和向应用的注册状态),请按以下步骤操作:
控制台
查看应用中已注册或已分离的服务和工作负载的详细信息:
- 在 Google Cloud 控制台的欢迎页面中,使用项目选择器选择您的管理项目或宿主项目: 
- 前往 App Hub 应用页面: - 该页面会显示您的申请列表。 
- 点击要查看服务或工作负载的应用的名称。 
- 在服务和工作负载标签页中,点击要查看的服务或工作负载的名称。 
- 在资源的详细信息页面上,您可以查看显示名称、位置、注册状态和属性等详细信息。 
或者,查看注册状态值为 discovered 或 registered 的所有服务和工作负载的列表:
- 前往 App Hub 服务和工作负载页面: - 该页面会显示所有已发现和已注册的服务和工作负载的列表。 
- 使用过滤条件字段按环境或注册状态等属性缩小结果范围。 
gcloud
查看应用中已注册或已分离的服务和工作负载的详细信息:
- 查找管理项目或宿主项目的项目 ID。 
- 描述应用中的服务或工作负载,以查看其详细信息: - 描述服务: - 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。
 
 
输出会显示资源中的详细信息,例如显示名称、位置、注册状态和属性。
或者,查看注册状态值为 discovered 或 registered 的所有服务和工作负载的列表:
发现的资源
发现的资源可注册到应用。请按照以下步骤列出发现的资源:
- 列出已发现的服务: - gcloud apphub discovered-services list \ --project=PROJECT_ID \ --location=LOCATION- 替换以下内容: - PROJECT_ID:宿主项目或管理项目的 ID。
- LOCATION:您要发现资源的位置。对于全局资源,请使用- global;对于区域资源,请使用特定区域,例如- us-east1。
 
- 列出发现的工作负载: - gcloud apphub discovered-workloads list \ --project=PROJECT_ID \ --location=LOCATION
已注册的资源
已注册的资源是应用的一部分。请按照以下步骤列出特定应用的已注册资源。您可以使用 --filter 标志根据属性过滤列表:
- 列出应用中已注册的服务: - 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。
 
- 列出应用中已注册的工作负载: - gcloud apphub applications workloads list \ --application=APPLICATION_NAME \ --project=PROJECT_ID \ --location=LOCATION \ --filter=FILTER_EXPRESSION
如果您修改 Google Cloud资源的组织结构或删除底层资源,应用的注册服务和工作负载的状态可能会更改为分离。分离的服务和工作负载会保留在应用中,直到您取消注册它们为止,但 App Hub 无法再管理或监控它们。如需了解详情,请参阅服务和工作负载的注册状态。
如需将服务或工作负载重新附加到应用,您必须根据设置模型的资源层次结构重新注册它们。
更新服务和工作负载属性
如需修改已注册到应用的服务和工作负载的用户定义属性,请按以下步骤操作:
控制台
gcloud
- 查找管理项目或宿主项目的项目 ID。 
- 更新服务或工作负载属性: - 更新服务属性: - 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_NAME和- DEV_EMAIL:开发者所有者的显示名称和电子邮件地址(分别)。
- 可选: - OPERATOR_NAME和- OPERATOR_EMAIL:运营商所有者的显示名称和电子邮件地址(分别)。
- 可选: - BUSINESS_NAME和- BUSINESS_EMAIL:企业主的显示名称和电子邮件地址(分别)。
 
- 必需:
 
Terraform
如需使用 Terraform 更新服务或工作负载属性,请修改配置文件中相应 google_apphub_service 或 google_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 } }
取消注册服务和工作负载
取消注册服务或工作负载会将其从应用中移除。底层资源不会被删除,而是会再次成为已发现的资源,可供其他应用注册。
如需取消注册服务和工作负载,请按以下步骤操作:
控制台
gcloud
- 查找管理项目或宿主项目的项目 ID。 
- 取消注册服务或工作负载: - 取消注册服务: - 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_service 或 google_apphub_workload 资源块,然后运行 terraform apply。应用更改后,Terraform 会从 App Hub 中移除注册信息。
取消注册所有服务和工作负载后,您可以删除应用。