管理服務和工作負載

選擇應用程式設定模型時,您會在管理專案中,為 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 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 無法再管理或監控這些項目。詳情請參閱「服務和工作負載的註冊狀態」。

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

更新服務和工作負載屬性

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

控制台

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

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

後續步驟