管理服務和工作負載

選擇應用程式設定模型時,您會在管理專案中,為 App Hub 應用程式定義應用程式管理邊界。然後在該界線內的應用程式中註冊服務和工作負載。如需導入應用程式管理實務的建議用途,請參閱「為應用程式生命週期管理做好準備」。

為避免設定漂移並維持明確的可靠資料來源,建議您在原始定義應用程式元件的環境中管理這些元件:

  • 從 Application Design Center 範本部署的應用程式: 使用 Application Design Center 管理及更新應用程式。 您可以修訂範本來變更應用程式設計,也可以建立應用程式修訂版本,更新應用程式和元件詳細資料等設定。

    前往 App Design Center

  • 透過在 App Hub 註冊現有資源建立的應用程式: 直接在 App Hub 中管理應用程式、服務和工作負載。

    前往 App Hub

本頁面說明如何管理在 App Hub 中直接探索或註冊的服務和工作負載。您可以使用 Google Cloud 控制台或 Google Cloud CLI 執行這些動作。如要瞭解如何部署應用程式,請參閱應用程式設計中心說明文件。

事前準備

本文假設您已擁有向應用程式註冊的支援資源

必要的角色

如要取得管理 App Hub 服務和工作負載所需的權限,請要求管理員在定義應用程式管理邊界的管理專案中,授予您下列 IAM 角色:

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

如要進一步瞭解 App Hub 角色,請參閱「App Hub 身分與存取權管理角色和權限」。

查看服務和工作負載的詳細資料

請按照下列步驟,在應用程式管理邊界內查看服務和工作負載的詳細資料,包括位置、向應用程式註冊的狀態、屬性和內容。如要進一步瞭解這些詳細資料,請參閱「應用程式中心概念和資料模型」。

控制台

查看應用程式中服務和工作負載的詳細資料,這些應用程式的註冊狀態值為「已註冊」或「已分離」

  1. 在 Google Cloud 控制台,使用專案選擇工具選取管理專案。

  2. 從 App Hub 前往「Applications」(應用程式) 頁面:

    前往「Applications」(應用程式)

    這個頁面會顯示應用程式清單。

  3. 按一下要查看服務或工作負載詳細資料的應用程式名稱。

  4. 在「服務和工作負載」分頁中,按一下要查看的服務或工作負載名稱。

  5. 在元件的「詳細資料」頁面中,您可以查看顯示名稱、位置、註冊狀態、屬性和屬性等資訊。

或者,您也可以查看所有服務和工作負載的清單,其中註冊狀態值為「已探索」或「已註冊」

  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

輸出內容會顯示元件的詳細資料,例如顯示名稱、位置和註冊狀態。如果資源有屬性和屬性,也會一併納入。

或者,您也可以查看所有服務和工作負載的清單,其中註冊狀態值為「已探索」或「已註冊」

已發現

應用程式管理邊界內發現的 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
    

如果將專案或資料夾移出應用程式管理邊界,或刪除基礎資源,應用程式中服務和工作負載的註冊狀態可能會變更為「已分離」。服務和工作負載解除連結後,仍會保留在應用程式中,直到您取消註冊為止,但 App Hub 無法再管理或監控這些項目。詳情請參閱「服務和工作負載的註冊狀態」。

如要將服務或工作負載重新附加至應用程式,請再次註冊

查看擴充中繼資料結構定義

App Hub 會使用中繼資料擴充服務和工作負載,提升探索能力、控管能力,以及與其他系統的整合能力。您可以使用 App Hub API 搜尋可用的中繼資料結構定義,並查看定義。

請按照下列步驟查看擴充中繼資料屬性的結構定義、列出所有可用的結構定義,或取得特定結構定義的詳細資料 (如有)。如要進一步瞭解擴充中繼資料屬性,請參閱「屬性和屬性」。如需支援的中繼資料類型及其結構定義清單,請參閱「擴充中繼資料結構定義」。

gcloud

  • 列出專案和位置中的所有可用擴充中繼資料結構定義:

    gcloud alpha apphub extended-metadata-schemas list \
        --project=PROJECT_ID \
        --location=LOCATION \
    

    更改下列內容:

    • PROJECT_ID:管理專案的 ID。
    • LOCATION:元件位置。 全域元件請使用 global,區域元件請使用 us-east1 等特定區域。
  • 查看特定結構定義的詳細資料:

    gcloud alpha apphub extended-metadata-schemas describe SCHEMA_NAME \
        --project=PROJECT_ID \
        --location=LOCATION \
    

    SCHEMA_NAME 替換為結構定義的完整名稱,例如 apphub.googleapis.com/AgentProperties

Terraform

您可以在 Terraform 中使用資料來源,擷取特定結構定義的詳細資料。以下範例可讓您查看 us-central1 位置的 my-project-id 專案中,AGENT 功能類型的工作負載 apphub.googleapis.com/AgentPropertiesapphub.googleapis.com/AgentProperties 結構定義詳細資料。

data "google_apphub_extended_metadata_schema" "agent_properties" {
  project  = "my-project-id"
  location = "us-central1"
  name     = "apphub.googleapis.com/AgentProperties"
}

更新服務和工作負載屬性

如要修改應用程式中註冊的服務和工作負載屬性,請按照下列步驟操作:

控制台

  1. 在 Google Cloud 控制台,使用專案選擇工具選取管理專案。

  2. 從 App Hub 前往「Applications」(應用程式) 頁面:

    前往「Applications」(應用程式)

    這個頁面會顯示應用程式清單。

  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 前往「Applications」(應用程式) 頁面:

    前往「Applications」(應用程式)

    這個頁面會顯示應用程式清單。

  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 移除註冊項目。

取消註冊所有服務和工作負載後,即可刪除應用程式

後續步驟