修改启用应用的文件夹中的 App Hub 资源

您可以使用 Google Cloud 控制台或者终端或 Cloud Shell 中的 Google Cloud CLI 在启用了应用的文件夹中列出、查看、更新和删除 App Hub 资源。

前提条件

在修改 App Hub 资源之前,请完成以下任务:

  1. 请按照前提条件设置 App Hub。
  2. 根据您要修改的资源类型,确保您已完成设置 App Hub 的步骤。如需了解详情,请参阅设置 App Hub

所需的角色

如需获得修改 App Hub 资源所需的权限,请让管理员向您授予启用了应用的文件夹的以下 IAM 角色:

  • 如需创建和更新应用、注册和取消注册服务和工作负载,以及更新关联的属性,请执行以下操作:
  • 如需查看应用、服务和工作负载及其属性,请执行以下操作: App Hub Viewer (roles/apphub.viewer)
  • 如需查看支持应用管理的服务中的应用、服务和工作负载及其属性,请使用 App Hub Management Viewer (roles/apphub.appManagementViewer): Google Cloud

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

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

列出应用

您可以列出启用了应用的文件夹中的应用并对其进行过滤。

控制台

  1. 如需查看已启用应用的文件夹中的应用,请在 Google Cloud 控制台中前往 App Hub 的应用页面。

    打开“应用”

    您会看到一个应用列表。

  2. 如需过滤应用,请执行以下操作:

    1. 过滤条件字段中,选择一个过滤条件,例如重要性
    2. 为过滤条件指定值。例如,如需显示重要性高的应用,请选择作为值。
      系统会显示与指定过滤条件匹配的应用列表。

gcloud

  1. 如需查看已启用应用的文件夹中的应用,请执行以下操作:

    gcloud apphub applications list \
        --project=MANAGEMENT_PROJECT_ID \
        --location=REGION
    

    替换以下内容:

    • MANAGEMENT_PROJECT_ID:您的管理项目的 ID。您可以在 Google Cloud 控制台的“身份和访问管理 (IAM)”&“管理”设置页面上找到管理项目 ID。如果您找不到“管理”项目 ID,则可能是因为您所在的文件夹未启用应用。从范围选择器(或项目选择器)中,选择已启用应用的文件夹。如需详细了解如何为文件夹启用应用管理功能,请参阅启用应用管理
    • REGION:应用的区域。根据应用的 --scope-type,为其赋值 global 或应用的区域,例如 us-east1。如需详细了解如何为应用设置 --scope-type,请参阅创建应用
  2. 如需根据变量属性过滤应用,请使用 --filter 标志。例如,如需列出 environment-type 属性设置为 PRODUCTION 的所有应用,请执行以下操作:

    gcloud apphub applications list \
        --filter='attributes.environment.type=PRODUCTION' \
        --project=MANAGEMENT_PROJECT_ID \
        --location=REGION
    

查看应用

您可以在支持应用的文件夹中描述应用。

控制台

  1. 在 Google Cloud 控制台中,前往 App Hub 的应用页面。

    打开“应用”

  2. 在应用列表中,点击要详细了解的应用。

  3. 点击详细信息标签页以显示应用的详细信息。

gcloud

gcloud apphub applications describe APPLICATION_NAME \
    --project=MANAGEMENT_PROJECT_ID \
    --location=REGION

APPLICATION_NAME 替换为应用的名称。名称只能包含小写字母数字字符,且不得包含空格。

更新 App Hub 应用

您可以在应用创建后更新应用的属性。

控制台

  1. 在 Google Cloud 控制台中,前往 App Hub 的应用页面。

    打开“应用”

  2. 在应用列表中,针对您要更新的应用点击 修改

  3. 根据需要修改字段。

  4. 点击保存

gcloud

  1. 使用 criticality-typeenvironment-type 和所有者类型属性更新您的应用:

    gcloud apphub applications update APPLICATION_NAME \
        --display-name='APPLICATION_DISPLAY_NAME' \
        --criticality-type='CRITICALITY_LEVEL' \
        --environment-type='ENVIRONMENT' \
        --developer-owners=display-name=DISPLAY-NAME-DEVELOPER,email=EMAIL-DEVELOPER \
        --operator-owners=display-name=DISPLAY-NAME-OPERATOR,email=EMAIL-OPERATOR \
        --business-owners=display-name=DISPLAY-NAME-BUSINESS,email=EMAIL-BUSINESS \
        --project=MANAGEMENT_PROJECT_ID \
        --location=REGION
    

    替换以下内容:

    • APPLICATION_NAME:应用的名称。名称只能包含小写字母数字字符,且不得包含空格。
    • REGION:应用的区域。

    您可以更新以下任意一项:

    • APPLICATION_DISPLAY_NAME:表示应用的显示名称。
    • CRITICALITY_LEVEL:表示应用、服务或工作负载对您的业务运营的重要程度。提供以下某个值:
      • MISSION_CRITICAL
      • HIGH
      • MEDIUM
      • LOW
    • ENVIRONMENT:表示软件生命周期的阶段。提供以下某个值:
      • PRODUCTION
      • STAGING
      • DEVELOPMENT
      • TEST
    • DISPLAY-NAME-DEVELOPERDISPLAY-NAME-OPERATORDISPLAY-NAME-BUSINESS:分别为开发者、运营商和企业所有者的显示名称。
    • EMAIL-NAME-DEVELOPEREMAIL-NAME-OPERATOREMAIL-NAME-BUSINESS:分别为开发者、运营商和企业所有者的电子邮件地址。这些值的格式必须为 username@yourdomain,例如 222larabrown@gmail.com

    例如:

    gcloud apphub applications update my-application \
        --criticality-type='MEDIUM' \
        --environment-type='STAGING' \
        --developer-owners=display-name=developer-name,email=username@yourdomain \
        --project=google-mpf-FOLDER-ID \
        --location=us-east1
    

查看服务和工作负载

您可以查看、列出和过滤应用中的服务和工作负载。

控制台

  1. 如需列出服务和工作负载,请执行以下操作:

    1. 在 Google Cloud 控制台中,前往 App Hub 的服务和工作负载页面。

      前往“服务和工作负载”页面

    2. 区域列表中,选择您要查看服务和工作负载所在的区域。例如,选择 us-east1
      “服务和工作负载”页面会显示与 us-east1 关联的已关联服务项目中的所有服务和工作负载。

  2. 如需过滤服务或工作负载,请执行以下操作:

    1. 过滤条件字段中,选择一个过滤条件,例如环境
    2. 为过滤条件指定值。例如,如需查看生产环境中的服务和工作负载,请选择 Production 作为值。
      系统会显示与指定过滤条件匹配的服务和工作负载的列表。

gcloud

列出发现的服务

发现的服务可注册到应用。

  1. 如需列出发现的服务,请执行以下操作:

    gcloud apphub discovered-services list \
        --project=MANAGEMENT_PROJECT_ID \
        --location=REGION

    您将看到类似如下所示的输出:

    ID                      SERVICE_REFERENCE                                                                                                                   SERVICE_PROPERTIES
    [DISCOVERED_SERVICE_ID] {'uri': '//compute.googleapis.com/projects/[PROJECT_NUMBER]/regions/REGION/forwardingRules/testing-forwarding-rule-1'}    {'gcpProject': 'projects/PROJECT_ID', 'location': 'REGION'}
    
  2. 可选:过滤发现的服务列表。例如,如需过滤已启用应用的文件夹中具有转发规则的发现服务,请执行以下操作:

    gcloud apphub discovered-services list \
        --filter='service_reference.uri~"forwardingRules"' \
        --project=MANAGEMENT_PROJECT_ID \
        --location=REGION

列出已注册的服务

列出和过滤应用中注册的 App Hub 服务。

  1. 如需列出应用中已注册的服务,请执行以下操作:

    gcloud apphub applications services list \
        --application=APPLICATION_NAME \
        --project=MANAGEMENT_PROJECT_ID \
        --location=REGION
    

    您将看到类似如下所示的输出:

    ID             DISPLAY_NAME            SERVICE_REFERENCE                                                                                                                CREATE_TIME
    SERVICE_NAME   mywebserver-service1    {'uri': '//compute.googleapis.com/projects/[PROJECT_NUMBER]/regions/REGION/forwardingRules/testing-forwarding-rule'}   2023-11-01T21:38:08
    

    已注册但已分离的服务由 SERVICE_REFERENCE 字段中的空值表示。

  2. 可选:过滤已注册服务的列表。例如,如需过滤 environment-type 属性设置为 PRODUCTION 的应用中的已注册服务,请执行以下操作:

    gcloud apphub applications services list \
        --filter='attributes.environment.type=PRODUCTION' \
        --application=APPLICATION_NAME \
        --project=MANAGEMENT_PROJECT_ID \
        --location=REGION
    

列出发现的工作负载

发现的工作负载可注册到应用。

  1. 如需列出发现的工作负载,请执行以下操作:

    gcloud apphub discovered-workloads list \
        --project=MANAGEMENT_PROJECT_ID \
        --location=REGION
    

    您将看到类似如下所示的输出,其中包含未注册的 MIG:

    ID                        WORKLOAD_REFERENCE                                                                                                   WORKLOAD_PROPERTIES
    [DISCOVERED_WORKLOAD_ID]  {'uri': '//compute.googleapis.com/projects/[PROJECT_NUMBER]/regions/REGION/instanceGroups/testing-mig'}    {'gcpProject': 'projects/PROJECT_ID', 'location': 'REGION'}
    
  2. 可选:过滤发现的工作负载列表。例如,如需过滤已启用应用的文件夹中包含计算资源的已发现工作负载列表,请执行以下操作:

    gcloud apphub discovered-workloads list \
        --filter='workload_reference.uri~"compute"'
        --project=MANAGEMENT_PROJECT_ID \
        --location=REGION
    

列出已注册的工作负载

列出和过滤应用中注册的 App Hub 工作负载。

  1. 如需列出应用中已注册的工作负载,请执行以下操作:

    gcloud apphub applications workloads list \
        --application=APPLICATION_NAME \
        --project=MANAGEMENT_PROJECT_ID \
        --location=REGION
    

    您将看到类似如下所示的输出:

    ID               DISPLAY_NAME               WORKLOAD_REFERENCE                                                                                                     CREATE_TIME
    WORKLOAD_NAME    mywebserver-deployment1    {'uri': '//compute.googleapis.com/projects/[PROJECT_NUMBER]/regions/REGION/instanceGroups/testing-mig'}    2023-10-31T18:34:23
    

    已注册但已分离的工作负载由 WORKLOAD_REFERENCE 字段中的空值表示。如需详细了解注册状态,请参阅 App Hub 的属性和属性

  2. 可选:过滤已注册工作负载的列表。例如,若要过滤 environment-type 属性设置为 PRODUCTION 的应用中的工作负载,请执行以下操作:

    gcloud apphub applications workloads list \
        --filter='attributes.environment.type=PRODUCTION' \
        --application=APPLICATION_NAME \
        --project=MANAGEMENT_PROJECT_ID \
        --location=REGION
    

更新服务和工作负载

您可以更新注册到应用的服务和工作负载。

控制台

  1. 在 Google Cloud 控制台中,前往 App Hub 的应用页面。

    打开“应用”

  2. 点击应用的名称。
    系统会显示服务和工作负载标签页,其中列出了服务项目中已注册的服务和工作负载。

  3. 对于要更新的每项服务或工作负载,请执行以下操作:

    1. 服务和工作负载标签页中,针对要更新的服务或工作负载,点击 more_vert,然后点击 修改服务修改工作负载
    2. 修改服务修改工作负载窗格中,根据需要修改字段,然后点击保存

gcloud

  1. 使用 criticality-typeenvironment-type 和 ownerType 属性更新您的服务:

    gcloud apphub applications services update SERVICE_NAME \
        --application=APPLICATION_NAME \
        --display-name='SERVICE_DISPLAY_NAME' \
        --criticality-type='CRITICALITY_LEVEL' \
        --environment-type='ENVIRONMENT' \
        --developer-owners=display-name=DISPLAY-NAME-DEVELOPER,email=EMAIL-DEVELOPER \
        --operator-owners=display-name=DISPLAY-NAME-OPERATOR,email=EMAIL-OPERATOR \
        --business-owners=display-name=DISPLAY-NAME-BUSINESS,email=EMAIL-BUSINESS \
        --project=MANAGEMENT_PROJECT_ID \
        --location=REGION
    

    SERVICE_NAME 替换为应用中心服务的名称。

    您可以更新以下任意一项:

    • SERVICE_DISPLAY_NAME:表示服务的显示名称。
    • CRITICALITY_LEVEL:表示应用、服务或工作负载对您的业务运营的重要程度。提供以下某个值:
      • MISSION_CRITICAL
      • HIGH
      • MEDIUM
      • LOW
    • ENVIRONMENT:表示软件生命周期的阶段。提供以下某个值:
      • PRODUCTION
      • STAGING
      • DEVELOPMENT
      • TEST
    • DISPLAY-NAME-DEVELOPERDISPLAY-NAME-OPERATORDISPLAY-NAME-BUSINESS:分别为开发者、运营商和企业所有者的显示名称。
    • EMAIL-NAME-DEVELOPEREMAIL-NAME-OPERATOREMAIL-NAME-BUSINESS:分别为开发者、运营商和企业所有者的电子邮件地址。这些值的格式必须为 username@yourdomain,例如 222larabrown@gmail.com

    例如:

    gcloud apphub applications workloads update my-application \
        --criticality-type='MEDIUM' \
        --environment-type='STAGING' \
        --developer-owners=display-name=developer-name,email=username@yourdomain \
        --project=google-mpf-FOLDER-ID \
        --location=us-east1
    
  2. 使用 criticality-typeenvironment-type 和 owner 类型属性更新您的工作负载:

    gcloud apphub applications workloads update WORKLOAD_NAME \
        --application=APPLICATION_NAME \
        --display-name='WORKLOAD_DISPLAY_NAME' \
        --criticality-type='CRITICALITY_LEVEL' \
        --environment-type='ENVIRONMENT' \
        --developer-owners=display-name=DISPLAY-NAME-DEVELOPER,email=EMAIL-DEVELOPER \
        --operator-owners=display-name=DISPLAY-NAME-OPERATOR,email=EMAIL-OPERATOR \
        --business-owners=display-name=DISPLAY-NAME-BUSINESS,email=EMAIL-BUSINESS \
        --project=MANAGEMENT_PROJECT_ID \
        --location=REGION
    

    WORKLOAD_NAME 替换为应用中心工作负载的名称。

    您可以更新以下任意一项:

    • WORKLOAD_DISPLAY_NAME:表示服务的显示名称。
    • CRITICALITY_LEVEL:表示应用、服务或工作负载对您的业务运营的重要程度。提供以下某个值:
      • MISSION_CRITICAL
      • HIGH
      • MEDIUM
      • LOW
    • ENVIRONMENT:表示软件生命周期的阶段。提供以下某个值:
      • PRODUCTION
      • STAGING
      • DEVELOPMENT
      • TEST
    • DISPLAY-NAME-DEVELOPERDISPLAY-NAME-OPERATORDISPLAY-NAME-BUSINESS:分别为开发者、运营商和企业所有者的显示名称。
    • EMAIL-NAME-DEVELOPEREMAIL-NAME-OPERATOREMAIL-NAME-BUSINESS:分别为开发者、运营商和企业所有者的电子邮件地址。这些值的格式必须为 username@yourdomain,例如 222larabrown@gmail.com

    例如:

    gcloud apphub applications workloads update my-application \
        --criticality-type='MEDIUM' \
        --environment-type='STAGING' \
        --developer-owners=display-name=developer-name,email=username@yourdomain \
        --project=google-mpf-FOLDER-ID \
        --location=us-east1
    

删除应用、服务和工作负载

删除现有应用可移除与启用了应用的文件夹关联的已注册资源。为此,您必须先取消注册已注册到该应用的工作负载和服务。

控制台

  1. 在 Google Cloud 控制台中,前往 App Hub 的应用页面。

    打开“应用”

  2. 点击相应应用的名称。 系统会显示已注册到该应用的服务和工作负载的列表。

  3. 取消注册服务或工作负载。

    1. 服务和工作负载标签页的已注册的服务和工作负载部分中,点击要取消注册的服务或工作负载的名称。
    2. 在随即打开的已注册服务或工作负载的页面上,点击取消注册,将服务或工作负载更新为已发现资源。在服务和工作负载标签页中,系统会显示一条提醒,告知您工作负载未注册。
    3. 对每项服务和工作负载重复这些说明。
  4. 前往 App Hub 的应用页面。

    打开“应用”

  5. 点击相应应用的名称。

  6. 在显示应用详情的页面上,点击删除

gcloud

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

    gcloud apphub applications services list \
        --application=APPLICATION_NAME \
        --project=MANAGEMENT_PROJECT_ID \
        --location=REGION
    
  2. 从应用中取消注册服务:

    gcloud apphub applications services delete SERVICE_NAME \
        --application=APPLICATION_NAME \
        --project=MANAGEMENT_PROJECT_ID \
        --location=REGION
    

    该服务现在是可注册到应用的已发现服务。

  3. 重复上述命令,从应用中取消注册所有剩余的已注册服务。

  4. 列出应用中已注册的工作负载:

    gcloud apphub applications workloads list \
        --application=APPLICATION_NAME \
        --project=MANAGEMENT_PROJECT_ID \
        --location=REGION
    
  5. 从应用中取消注册工作负载:

    gcloud apphub applications workloads delete WORKLOAD_NAME \
        --application=APPLICATION_NAME \
        --project=MANAGEMENT_PROJECT_ID \
        --location=REGION
    

    该工作负载现在是一项已发现的工作负载,可以注册到应用。

  6. 重复前面的命令,从应用中删除所有剩余的已注册工作负载。

  7. 删除应用:

    gcloud apphub applications delete APPLICATION_NAME \
        --project=MANAGEMENT_PROJECT_ID \
        --location=REGION
    

后续步骤