管理服務和工作負載

選擇應用程式設定模型時,您會在管理專案中,為 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 Design Center 說明文件。

事前準備

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

必要的角色

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

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

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

如要進一步瞭解 App Hub 角色,請參閱「App Hub IAM 角色和權限」。

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

請按照下列步驟操作,查看應用程式管理邊界內的服務和工作負載詳細資料,包括:

如要進一步瞭解這些詳細資料,請參閱「應用程式中心概念和資料模型」。

控制台

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

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

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

後續步驟