设置 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 中移除注册信息。
取消注册所有服务和工作负载后,您可以删除应用。