為主專案設定 App Hub

本文說明如何使用主專案設定 App Hub,在 Google Cloud上建構、運作及管理應用程式。主專案是 Google Cloud 專案,可代管服務專案,包括您想使用 App Hub 應用程式管理的資源。本文適用於設定及管理 App Hub 的使用者。

建議您使用啟用應用程式的資料夾設定 App Hub,並管理應用程式。已啟用應用程式的資料夾會為資料夾下的所有專案提供應用程式管理功能,並開放存取 Application Design Center 和 Gemini Cloud Assist 等功能。詳情請參閱「設定啟用應用程式的資料夾專用 App Hub」。

服務和工作負載

透過 App Hub,您可以使用附加至主專案的服務專案資源,做為服務和工作負載。將服務和工作負載註冊至應用程式,即可觀察及監控資源。App Hub 支援全域和區域資源。詳情請參閱「App Hub 支援的資源」。

整體設定程序

以下列出設定應用程式中心的步驟摘要:

  1. 判斷要在應用程式中納入哪些現有資源,以及這些資源所屬的專案
  2. 建立 App Hub 主專案,或使用現有專案做為主專案。視貴商家機構架構而定,您也可以建立多個主機專案。
    • 如果您打算使用多個主機專案,強烈建議您在同一個資料夾中建立這些專案。
    • 主專案不能是服務專案 (本身除外)。
  3. 在主專案中啟用 App Hub API。
  4. 指派 App Hub 使用者為 App Hub 管理員、編輯者或檢視者。
  5. 附加服務專案。設定主專案後,請將應用程式需要的基礎資源所屬的服務專案,附加至主專案。請注意以下事項:
    1. 服務專案必須與主專案位於同一個機構。將服務專案附加至主專案後,就無法將其移至其他機構。如要將服務專案移至其他機構,請按照本文的說明移除或分離服務專案與主專案的連結。然後將服務專案附加至其他機構。
    2. 服務專案無法附加至多個主專案。
    3. 主專案可以是自己的服務專案,但不能是任何其他主專案的服務專案。
    4. 將服務專案附加至主專案後,查詢主專案的服務或工作負載時,系統會自動傳回所有服務專案中的所有服務和工作負載。
  6. 建立應用程式,管理多個工作負載和服務。請注意下列事項:
    1. 確認應用程式在主專案和位置中具有不重複的名稱。
    2. 服務專案可以附加至有多個應用程式的主專案,但個別資源只能向一個應用程式註冊。
  7. 查詢服務和工作負載,並將其註冊至應用程式。 建立應用程式後,請查詢主專案中可用的服務和工作負載。查詢會針對主專案和附加至主專案的所有服務專案執行。也會傳回這些專案中的所有服務和工作負載。請注意以下事項:
    1. 您只能向單一應用程式註冊服務或工作負載。
    2. 您必須將特定區域的服務和工作負載,註冊至相同區域的區域應用程式,或是註冊至全域應用程式。以下操作說明和指令假設所有資源都位於同一個區域。如要瞭解可指定的地區,請參閱「位置」一文。
    3. 更新基礎架構資源不會影響已註冊的服務和工作負載。換句話說,如果您刪除做為服務和工作負載的基礎資源,App Hub 不會從應用程式中刪除相關聯的工作負載和服務。您必須分別取消註冊工作負載或服務。

必要條件

設定應用程式中心前,請先完成下列工作。

  1. 決定要將哪個現有專案設為主專案,或是建立新專案做為主專案。強烈建議您建立新專案。
  2. 請確認您已決定哪些使用者要擔任 App Hub 的身分與存取權管理 (IAM) 角色:App Hub 管理員、App Hub 編輯者和 App Hub 檢視者。

請注意,將服務專案附加至主專案的人員,必須在服務專案和主專案中都具備 App Hub 管理員 IAM 角色。詳情請參閱「應用程式中心角色和權限」。

設定 App Hub

在本節中,您將建立範例 App Hub 架構。

在這個範例中,機構組織有三個服務專案,基礎架構資源部署在這些專案中,如下所示:

  • 服務專案 1 有兩項基礎架構資源,分別是服務 1 和服務 2。
  • 服務專案 2 有三項基礎架構資源:服務 3、工作負載 1 和工作負載 2。
  • 服務專案 3 有三項基礎架構資源:服務 4、工作負載 3 和工作負載 4。

請確認您選擇建立範例的專案包含本節所述資源,或準備好在按照指示操作時調整範例。

下列各節包含建立 App Hub 範例的操作說明。您建立主專案,並將服務專案新增至主專案,然後建立應用程式,並將服務和工作負載附加至應用程式。這個範例有三個服務專案,但您可以新增較少或較多的專案。

這個範例假設您新增的任何服務專案都已存在,且包含您新增至應用程式的服務和工作負載。建立範例前,請先判斷哪些服務專案包含要納入應用程式的服務和工作負載。

啟用 App Hub

在本節中,您可以選取或建立新的主專案、啟用 App Hub API,並授予貴機構中個人適當的角色和權限。您也可以將服務專案附加至主專案。

控制台

  1. 前往 Google Cloud 控制台的專案選取器頁面。

    前往專案選取器

  2. 選取或建立 Google Cloud 專案,做為 App Hub 主專案。

  3. Enable the required API.

    Enable the API

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. 確認已安裝最新版 Google Cloud CLI。在 Cloud Shell 中執行下列指令:

    gcloud components update
  3. 建立或選取新專案 (HOST_PROJECT_ID),做為 App Hub 的主機專案。

    • 建立專案: Google Cloud
      gcloud projects create HOST_PROJECT_ID
    • 選取您建立的 Google Cloud 專案:
      gcloud config set project HOST_PROJECT_ID
  4. 在您剛建立的主專案中啟用 App Hub API。

    gcloud services enable apphub.googleapis.com \
        --project=HOST_PROJECT_ID
    

指派 App Hub 使用者

如果您是專案建立者,系統會授予您基本擁有者角色 (roles/owner)。根據預設,這個 IAM 角色包含的權限,可讓您完整存取大多數 Google Cloud 資源。

如果您不是專案建立者,必須在專案中將必要權限授予適當的主體。舉例來說,主體可以是 Google 帳戶 (適用於使用者) 或服務帳戶 (適用於應用程式和運算工作負載)。如要取得完成本教學課程所需的權限,請要求管理員授予您專案的下列 IAM 角色:

控制台

  1. 前往 Google Cloud 控制台的「IAM」頁面。

    前往「身分與存取權管理」頁面

  2. 按一下「授予存取權」。 「授予存取權」窗格隨即開啟。

  3. 在「New principals」(新增主體) 欄位中,輸入將管理應用程式中樞的個人電子郵件地址,也就是主機專案中的「App Hub Admin」(應用程式中樞管理員) 角色。

  4. 按一下「選取角色」,然後在「篩選器」欄位中輸入「App Hub」

  5. 選取「App Hub 管理員」角色,然後按一下「儲存」

  6. 在每個 App Hub 服務專案中,將 App Hub 管理員角色授予同一位使用者。

gcloud

  1. (選用) 將主專案中的 App Hub 管理員角色授予負責管理 App Hub 的人員。針對每位管理員重複執行下列指令。

    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
        --member='user:HOST_PROJECT_ADMIN' \
        --role='roles/apphub.admin'
    

    HOST_PROJECT_ADMIN 替換為在主專案中具有 App Hub 管理員角色的使用者。這個值的格式為 username@yourdomain,例如 robert.smith@example.com

  2. 在服務專案中,將 App Hub 管理員角色授予管理 App Hub 的人員。他們必須具備 App Hub 管理員角色,才能將服務專案新增至主專案。每個服務專案至少需要一位具有這項角色的使用者。同一人可以在多個服務專案中擔任該角色。

    gcloud projects add-iam-policy-binding SERVICE_PROJECT_1 \
        --member='user:HOST_PROJECT_ADMIN' \
        --role='roles/apphub.admin'
    
    gcloud projects add-iam-policy-binding SERVICE_PROJECT_2 \
        --member='user:HOST_PROJECT_ADMIN' \
        --role='roles/apphub.admin'
    
    gcloud projects add-iam-policy-binding SERVICE_PROJECT_3 \
        --member='user:HOST_PROJECT_ADMIN' \
        --role='roles/apphub.admin'
    

    更改下列內容:

    • SERVICE_PROJECT_1:本範例中的第一個服務專案 (共三個)。
    • SERVICE_PROJECT_2:本例中的第二個服務專案。
    • SERVICE_PROJECT_3:本例中的第三個服務專案 (共三個)。

將服務專案新增至主專案

將要管理的基礎資源所屬服務專案,新增至 App Hub 主專案。

控制台

  1. 前往 Google Cloud 控制台的 App Hub「Settings」(設定) 頁面。

    前往「設定」

  2. 在「設定」頁面中,按一下「附加專案」

  3. 執行下列其中一個步驟:

    • 在專案清單中,勾選要新增為服務專案的專案核取方塊。
    • 搜尋專案,然後選取要新增為服務專案的專案。
  4. 按一下「選取」。 「附加的服務專案」表格會顯示所選服務專案。

  5. 按一下 [關閉]

gcloud

gcloud apphub service-projects add SERVICE_PROJECT_1 \
    --project=HOST_PROJECT_ID
gcloud apphub service-projects add SERVICE_PROJECT_2 \
    --project=HOST_PROJECT_ID
gcloud apphub service-projects add SERVICE_PROJECT_3 \
    --project=HOST_PROJECT_ID

選用:將服務專案新增至主專案的指標範圍

如要查看主專案中應用程式的系統指標,請將服務專案新增為主專案指標範圍的資源容器。App Hub 主專案會做為範圍專案,用於代管指標範圍。專案的指標範圍Google Cloud 定義了一組資源容器,主專案可繪製及監控這些容器的時間序列資料。如要進一步瞭解資源容器、指標範圍和範圍專案,請參閱 Cloud Monitoring:資料模型。如要進一步瞭解哪些基礎架構資源支援 App Hub 應用程式系統指標和系統中繼資料標籤,請參閱支援的資源

如要查看應用程式的系統指標,您必須視需要從主專案手動新增或刪除受監控的服務專案。不過,如果您將主專案做為自己的服務專案,由於應用程式中心應用程式位於同一專案中,請勿將專案新增至指標範圍。

請確認您具備下列 IAM 角色:

  • 如要取得查看 App Hub 應用程式指標所需的權限,請要求管理員為主體授予「Monitoring 檢視者」 (roles/monitoring.viewer) IAM 角色。詳情請參閱「授予 Monitoring 的存取權」。
  • 如要取得設定指標範圍所需的權限,請要求管理員在範圍界定專案和要新增至指標範圍的每個資源容器中,授予您「監控管理員」 (roles/monitoring.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

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

控制台

  1. 前往 Google Cloud 控制台的 「Settings」(設定) 頁面

    前往「設定」

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果

  2. 選取「指標範圍」

    「指標範圍」分頁會列出目前Google Cloud 專案監控的資源。此外,這份表格也會列出 Google Cloud 指標範圍包含目前專案的專案 Google Cloud 。

  3. 如要將 Google Cloud 專案新增至指標範圍,請按照下列步驟操作:

    1. 在「Google Cloud Projects」窗格中,按一下「Add Projects」
    2. 在「新增 Google Cloud 專案」對話方塊中,按一下「選取專案」,然後選取要監控的必要服務專案核取方塊。
    3. 如要儲存變更,請按一下「新增專案」

      系統會顯示「設定」頁面,並更新該頁面的表格,列出您選取的項目。

將專案新增至指標範圍後,變更內容約需 60 秒才能傳播至所有 Monitoring 系統。

如要進一步瞭解如何使用Google Cloud 控制台設定指標範圍,請參閱「設定指標範圍」。

gcloud

如要將服務專案新增為受監控的資源容器,附加至 App Hub 主專案,請按照下列步驟操作:

gcloud beta monitoring metrics-scopes create projects/SERVICE_PROJECT_1 \
    --project=HOST_PROJECT_ID
gcloud beta monitoring metrics-scopes create projects/SERVICE_PROJECT_2 \
    --project=HOST_PROJECT_ID
gcloud beta monitoring metrics-scopes create projects/SERVICE_PROJECT_3 \
    --project=HOST_PROJECT_ID

如要進一步瞭解如何使用 Google Cloud CLI 設定指標範圍,請參閱「使用 API 設定指標範圍」。

建立應用程式

如果還沒有應用程式,請建立一個,做為服務和工作負載的容器。根據服務專案的服務和工作負載範圍,建立全域或區域應用程式。

  • 全域應用程式可讓您註冊從區域和全域 Google Cloud 資源探索到的服務和工作負載。
  • 區域應用程式可讓您註冊從區域 Google Cloud 資源探索到的服務和工作負載。

請注意,應用程式建立完成後,您就無法變更應用程式範圍。如要進一步瞭解全球和區域應用程式,請參閱「全球和區域 App Hub 應用程式」。

控制台

  1. 確認您位於主專案中。
  2. 前往 Google Cloud 控制台的 App Hub「Applications」頁面。

    前往「Applications」(應用程式)

  3. 按一下「建立應用程式」

  4. 在「建立應用程式」頁面的「選擇應用程式區域和名稱」窗格中,根據要向應用程式註冊的服務和工作負載範圍,執行下列其中一項操作:

    • 如要建立應用程式,以便從全域位置註冊服務和工作負載,請選取「Global」

    • 如要建立應用程式,以便從單一位置註冊服務和工作負載,請按照下列步驟操作:

      1. 選取「區域」
      2. 選擇一個 [Region] (地區)
  5. 輸入應用程式名稱,然後按一下「繼續」

  6. 視需要,在後續欄位中新增應用程式的詳細資料。詳情請參閱本文的「更新現有的 App Hub 應用程式」。

  7. 點選「建立」

gcloud

  1. 建立名為 APPLICATION_NAME 的新應用程式,並提供顯示名稱 APPLICATION_DISPLAY_NAME

    gcloud apphub applications create APPLICATION_NAME \
      --scope-type=SCOPE_TYPE \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    更改下列內容:

    • APPLICATION_NAME:應用程式名稱。 名稱只能包含小寫英數字元,且不得有空格。
    • SCOPE_TYPE:應用程式的範圍,定義可供您向應用程式註冊的服務和工作負載。請使用下列其中一個值:
      • REGIONAL
      • GLOBAL
    • REGION:應用程式的區域。視 --scope-type 而定,將此值設為 us-east1global
  2. 列出主專案中的應用程式。

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

    輸出結果會與下列內容相似:

    ID                DISPLAY_NAME              CREATE_TIME
    APPLICATION_NAME  APPLICATION_DISPLAY_NAME  2023-10-31T18:33:48
    
  3. 取得您建立的應用程式詳細資料。

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

    指令會以 YAML 格式傳回資訊,類似於下列內容。

    createTime: '2023-10-31T18:33:48.199394108Z'
    displayName: APPLICATION_DISPLAY_NAME
    name: projects/HOST_PROJECT_ID/locations/REGION/applications/APPLICATION_NAME
    scope:
      type: SCOPE_TYPE
    state: ACTIVE
    uid: [APPLICATION_UID]
    updateTime: '2023-10-31T18:33:48.343303819Z'
    
    

更新現有的 App Hub 應用程式

應用程式建立完成後,您也可以更新應用程式的屬性。

控制台

  1. 前往 Google Cloud 控制台的 App Hub「Applications」頁面。

    前往「Applications」(應用程式)

  2. 在應用程式清單中,找出要更新的應用程式,然後按一下「編輯」

  3. 視需要編輯欄位,然後按一下「儲存」

  4. 選用:在「重要性」清單中,選取下列其中一個選項,指出應用程式的重要性:

    • 對業務至關重要
  5. 選用:在「環境」清單中,選取下列其中一個選項,指出軟體生命週期的階段:

    • Production
    • 陳設
    • 開發
    • 測試
  6. (選用) 視需要新增開發人員擁有者營運者擁有者商家擁有者的詳細資料。請注意,如果新增顯示名稱,必須輸入擁有者的電子郵件地址。

    1. 輸入擁有者的顯示名稱。
    2. 輸入擁有者的電子郵件地址。這個值必須採用 username@yourdomain 格式,例如 222larabrown@gmail.com
  7. 針對每位開發人員、營運人員和企業主重複執行這些步驟。

  8. 按一下 [儲存]

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=HOST_PROJECT_ID \
      --location=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
  2. 列出屬性 environment-type 的值為 PRODUCTION 的應用程式。

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

    輸出結果會與下列內容相似:

    ID                DISPLAY_NAME              CREATE_TIME
    APPLICATION_NAME  APPLICATION_DISPLAY_NAME  2023-10-31T18:33:48
    

註冊服務和工作負載

將基礎架構服務和工作負載註冊至應用程式時,這些服務和工作負載會註冊為 App Hub 資源。使用全域應用程式註冊全域資源,或散布在多個區域的資源。使用區域應用程式註冊與應用程式位於相同區域的資源。

控制台

  1. 前往 Google Cloud 控制台的 App Hub「Applications」頁面。

    前往「Applications」(應用程式)

  2. 按一下應用程式名稱。 系統會顯示「服務和工作負載」分頁,其中列出服務專案中已註冊的服務和工作負載。

  3. 如要註冊服務或工作負載,請執行下列操作:

    1. 在「服務和工作負載」分頁中,按一下「註冊服務/工作負載」
    2. 在「Register service or workload」(註冊服務或工作負載) 頁面的「Select resource」(選取資源) 窗格中,按一下「Browse」(瀏覽),選取服務或工作負載做為「Resource」(資源)
    3. 在「選取資源」窗格中,選擇服務或工作負載,然後按一下「選取」
    4. 在「選取資源」窗格中,輸入服務或工作負載的「名稱」,然後按一下「繼續」
    5. (選用) 在「新增屬性」窗格中,在後續欄位中新增服務或工作負載的詳細資料。詳情請參閱本文的「更新現有的 App Hub 應用程式」。請注意,您可以為「嚴重程度」和「環境」欄位選取與建立應用程式時設定的值不同的值。
    6. 按一下「繼續」
    7. (選用) 在「新增擁有者」部分,於後續欄位中新增服務或工作負載擁有者的詳細資料。詳情請參閱本文的「更新現有的 App Hub 應用程式」一節。
    8. 按一下「註冊」

「服務和工作負載」分頁會顯示已註冊的服務或工作負載。如要進一步瞭解註冊狀態,請參閱應用程式中心屬性和屬性

gcloud

  1. 新增具有 App Hub 編輯器權限的使用者。

    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
      --member='user:APP_HUB_EDITOR' \
      --role='roles/apphub.editor'
    

    APP_HUB_EDITOR 替換為在主專案中具有 App Hub 編輯者角色的使用者。這個值的格式為 username@yourdomain,例如 robert.smith@example.com

  2. 列出服務專案 2 中探索到的工作負載,該專案已附加至主專案。這項指令會傳回可註冊至應用程式的工作負載。

    gcloud apphub discovered-workloads list \
      --filter='workload_properties.gcp_project=projects/SERVICE_PROJECT_2' \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    輸出結果會與下列內容相似,包括未註冊的 MIG:

    ID                           WORKLOAD_REFERENCE                                                                                                      WORKLOAD_PROPERTIES
    [DISCOVERED_WORKLOAD_ID_1]   {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/regions/REGION/instanceGroups/testing-mig-1'}     {'gcpProject': 'projects/SERVICE_PROJECT_2', 'location': 'REGION'}
    [DISCOVERED_WORKLOAD_ID_2]   {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/regions/REGION/instanceGroups/testing-mig-2'}     {'gcpProject': 'projects/SERVICE_PROJECT_2', 'location': 'REGION'}
    

    從輸出內容複製工作負載 ID,以便在下一個步驟中使用。

  3. 將上一步驟中的工作負載註冊至應用程式。

    gcloud apphub applications workloads create WORKLOAD_NAME \
      --discovered-workload='projects/HOST_PROJECT_ID/locations/REGION/discoveredWorkloads/DISCOVERED_WORKLOAD_ID_2' \
      --display-name='mywebserver-deployment1' \
      --application=APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    更改下列內容:

    • WORKLOAD_NAME:用來註冊工作負載的名稱。
    • DISCOVERED_WORKLOAD_ID_2:上一步輸出內容中的工作負載 ID。
  4. 重複前兩個步驟,從服務專案 3 篩選及註冊所需的工作負載。

  5. 選用:您可以使用 criticality-typeenvironment-type 和擁有者屬性更新工作負載。

    gcloud apphub applications workloads update WORKLOAD_NAME \
      --application=APPLICATION_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=HOST_PROJECT_ID \
      --location=REGION
    

    請注意,您必須為 criticality-typeenvironment-type 提供其中一個指定值,但該值可以與您建立應用程式時設定的值不同。

  6. 列出應用程式中已註冊的工作負載。

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

    輸出結果會與下列內容相似:

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

    已註冊但已分離的工作負載,會在 WORKLOAD_REFERENCE 欄位中以空值表示。如要進一步瞭解註冊狀態,請參閱「App Hub 的屬性和屬性」。

  7. 列出附加至主專案的服務專案 1 中,具有轉送規則的已探索服務。這項指令會傳回可註冊至應用程式的服務。

    gcloud apphub discovered-services list \
      --filter='service_properties.gcp_project=projects/SERVICE_PROJECT_1 AND service_reference.uri~"forwardingRules"' \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    輸出結果會與下列內容相似:

    ID                           SERVICE_REFERENCE                                                                                                                    SERVICE_PROPERTIES
    [DISCOVERED_SERVICE_ID_1]    {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/REGION/forwardingRules/testing-forwarding-rule-1'}     {'gcpProject': 'projects/SERVICE_PROJECT_1', 'location': 'REGION'}
    [DISCOVERED_SERVICE_ID_2]    {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/REGION/forwardingRules/testing-forwarding-rule-2'}     {'gcpProject': 'projects/SERVICE_PROJECT_1', 'location': 'REGION'}
    

    複製輸出內容中的服務 ID DISCOVERED_SERVICE_ID_2,以便在下一個步驟中使用。

  8. 在服務專案 1 中,將轉送規則 testing-forwarding-rule-2 註冊為服務。

    gcloud apphub applications services create SERVICE_NAME \
      --discovered-service='projects/HOST_PROJECT_ID/locations/REGION/discoveredServices/DISCOVERED_SERVICE_ID_2' \
      --display-name='mywebserver-service1' \
      --application=APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    更改下列內容:

    • SERVICE_NAME:用來註冊服務的名稱。
    • DISCOVERED_SERVICE_ID_2:上一個步驟輸出內容中的服務 ID。
  9. 重複先前的步驟,列出服務、篩選服務,並在服務專案 1、2 和 3 中註冊服務。

  10. 使用 criticality-type 屬性和 environment-type 屬性更新服務。

    gcloud apphub applications services update SERVICE_NAME \
      --criticality-type='CRITICALITY_LEVEL' \
      --environment-type='ENVIRONMENT' \
      --application=APPLICATION_NAME \
      --project=HOST_PROJECT_ID  \
      --location=REGION
    
  11. 列出應用程式和主專案中已註冊的服務。APPLICATION_NAMEHOST_PROJECT_ID

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

    每個服務的輸出內容會類似如下:

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

    已註冊但已分離的服務會在 SERVICE_REFERENCE 欄位中以空白值表示。

  12. 在應用程式和主專案中,將服務篩選為 environment-type 屬性設為 PRODUCTION 的服務。APPLICATION_NAMEHOST_PROJECT_ID

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

App Hub 設定程序完成。

新增或移除服務專案

您可以修改服務專案附件,讓不同的基礎架構資源可供分組到應用程式中。

如要查看主專案中應用程式的系統指標,請將服務專案新增至主專案後,將服務專案新增為主專案指標範圍的資源容器。詳情請參閱本文中的「將服務專案新增至主機專案的指標範圍」。從主專案中移除服務專案時,請考慮從主專案的指標範圍中移除服務專案做為資源容器 (如果您先前選擇查看主專案中應用程式的系統指標)。詳情請參閱本文中的步驟,瞭解如何從主專案的指標範圍中移除服務專案

控制台

如要將服務專案新增至主專案,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的 App Hub「Settings」(設定) 頁面。

    前往「設定」

  2. 在「設定」頁面中,按一下「附加專案」

  3. 在隨即開啟的窗格中,從顯示的清單搜尋專案,然後勾選要新增為服務專案的專案核取方塊。

  4. 按一下「選取」。 「附加的服務專案」表格會顯示所選專案,做為主專案的服務專案。

  5. 按一下 [關閉]

如要從託管專案中移除服務專案,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的 App Hub「Settings」(設定) 頁面。

    前往「設定」

  2. 在「設定」頁面中,選取要移除服務專案資格的專案核取方塊。

  3. 按一下「取消連結專案」。 「已附加的服務專案」表格會重新整理,只顯示仍附加至主專案的專案。

gcloud

如要將服務專案新增至主專案,請按照下列步驟操作:

gcloud apphub service-projects add SERVICE_PROJECT_ID \
   --project=HOST_PROJECT_ID
SERVICE_PROJECT_ID 替換為要新增至主專案的服務專案名稱。
如要從主專案中移除服務專案,請按照下列步驟操作:
gcloud apphub service-projects remove SERVICE_PROJECT_ID \
   --project=HOST_PROJECT_ID

查看現有應用程式、服務和工作負載

您可以查看專案中的應用程式,並列出應用程式中的服務和工作負載。

控制台

  • 如要查看專案中的應用程式:

    1. 前往 Google Cloud 控制台的 App Hub「Applications」頁面。

      前往「Applications」(應用程式)

    2. 選用:如要篩選應用程式,請按照下列步驟操作:

      1. 在「篩選器」欄位中,選取「嚴重程度」等篩選器。
      2. 選取「高」做為值。
        系統會顯示在主機專案中建立的高重要性應用程式清單。
  • 如要列出服務和工作負載:

    應用程式

    1. 前往 Google Cloud 控制台的 App Hub「Applications」頁面。

      前往「Applications」(應用程式)

    2. 按一下應用程式名稱。 畫面上會顯示已向應用程式註冊的服務和工作負載清單。

    3. 選用:如要篩選服務或工作負載,請按照下列步驟操作:

      1. 在「篩選器」欄位中,選取「嚴重程度」等篩選器。
      2. 選取「高」做為值。
        系統會顯示已向應用程式註冊的高重要性服務和工作負載清單。

    服務和工作負載

    1. 前往 Google Cloud 控制台的「App Hub」頁面。

      前往「服務和工作負載」

    2. 在「Region」(區域) 清單中,選取要查看服務和工作負載的區域。例如選取 us-east1
      「Services and Workloads」(服務和工作負載) 頁面會顯示與 us-east1 相關聯的附加服務專案中,所有服務和工作負載。

    3. 選用:如要篩選服務或工作負載,請按照下列步驟操作:

      1. 在「Filter」(篩選器) 欄位中,選取「Environment」(環境) 等篩選器。
      2. 選取「Production」做為值。
        系統會顯示已向應用程式註冊的正式環境服務和工作負載清單。

gcloud

  • 如要查看專案中的應用程式:

    gcloud apphub applications list \
      --project=HOST_PROJECT_ID \
      --location=REGION
    
  • 如要列出應用程式中已註冊的服務:

    gcloud apphub applications services list \
      --application=APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    
  • 如要列出應用程式中已註冊的工作負載:

    gcloud apphub applications workloads list \
      --application=APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    
  • 選用:如要根據變數屬性篩選資源,請在上述指令中加入 filter 指令旗標。舉例來說,如要列出 criticality-type 屬性設為 HIGH 的所有已註冊工作負載:

    gcloud apphub applications workloads list \
      --application=APPLICATION_NAME \
      --filter='attributes.criticality.type=HIGH' \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    如要進一步瞭解可篩選的屬性,請參閱本頁面的「更新現有的 App Hub 應用程式」。

選用:查看應用程式指標

您可以查看在 App Hub 主專案中建立的應用程式系統指標。這些指標對應於黃金訊號 (流量、錯誤、延遲和飽和度),可協助監控應用程式的效能和健康狀態。

  1. 前往 Google Cloud 控制台的 App Hub「Applications」頁面。

    前往「Applications」(應用程式)

  2. 按一下應用程式名稱。

    系統會顯示「服務和工作負載」分頁,其中包含已向應用程式註冊的服務和工作負載中繼資料。

  3. 選用:如要變更指標顯示的時間範圍,請使用時間範圍選取器。預設時間範圍為 1 小時

  4. 如要查看已註冊服務和工作負載的系統指標,請按一下「bar_chart」bar_chart「指標」

    系統會顯示資料表,內含下列黃金信號:

    • 流量:所選時間範圍內資源的傳入要求比率。
    • 伺服器錯誤率:在所選時間範圍內,產生 5xx 系列 HTTP 錯誤代碼的傳入要求平均百分比。
    • P95 延遲時間:服務要求延遲時間的第 95 個百分位數,以毫秒為單位,並在所選時間範圍內匯總。
    • CPU 使用率:工作負載的平均 CPU 使用率百分比,按照指定時間範圍匯總。值通常是介於 0.0 至 100.0 之間的數字,但可能超過 100.0。
    • 記憶體使用率:工作負載的平均記憶體使用率百分比,按照指定時間範圍匯總。

選用:使用圖表探索指標

如要繪製 App Hub 專案的指標圖表,請使用 Metrics Explorer。您可以根據標籤套用篩選器,限制圖表顯示的資料。詳情請參閱「使用 Metrics Explorer 建立圖表」一文。

您可以按照下列應用程式中心系統中繼資料標籤進行篩選 (預先發布版):

  • apphub_application_host_project_id
  • apphub_application_id
  • apphub_application_location
  • apphub_workload_criticality_type
  • apphub_workload_environment_type
  • apphub_workload_id

如要在圖表中顯示 App Hub 中繼資料標籤,請按照這些指示操作。其他系統中繼資料標籤和應用程式中心指標也適用相同程序。

  1. 前往 Google Cloud 控制台的 「Metrics Explorer」頁面:

    前往 Metrics Explorer

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果

  2. 在 Google Cloud 控制台的工具列中,選取您的 Google Cloud 專案。 如要進行 App Hub 設定,請選取 App Hub 主專案或已啟用應用程式的資料夾管理專案。
  3. 在「指標」元素中,展開「選取指標」選單, 在篩選列中輸入 VM Instance, 然後使用子選單選取特定資源類型和指標:
    1. 在「Active resources」(有效資源) 選單中,選取「VM Instance」(VM 執行個體)
    2. 在「Active metric categories」(使用中的指標類別) 選單中,選取「Popular metrics」(熱門指標)
    3. 在「Active metrics」(使用中的指標) 選單中,選取「CPU utilization」(CPU 使用率)
    4. 按一下 [套用]
    這項指標的完整名稱為 compute.googleapis.com/instance/cpu/utilization
  4. 設定資料的查看方式。如要只顯示特定標籤的指標,請按照下列步驟操作:
    1. 在「篩選器」元素中,按一下「新增篩選條件」,然後選取「apphub_application_id」。請輸入特定的 App Hub 名稱做為值。
    2. 在「Aggregation」(匯總) 項目中,將第一個選單設為「Unaggregated」(未匯總)

    如要進一步瞭解如何設定圖表,請參閱「使用 Metrics Explorer 時選取指標」。

清除所用資源

清理現有應用程式,並從主專案中移除服務專案附件,藉此移除與專案相關聯的資源。這樣一來,系統就會停止自動探索服務專案中的資源。

如要刪除應用程式,請先刪除註冊於該應用程式的工作負載和服務。

控制台

  1. 前往 Google Cloud 控制台的 App Hub「Applications」頁面。

    前往「Applications」(應用程式)

  2. 按一下應用程式名稱。 系統會顯示已向應用程式註冊的服務和工作負載清單。

  3. 取消註冊服務或工作負載。

    1. 在「服務和工作負載」分頁的「已註冊的服務和工作負載」部分,按一下要取消註冊的服務或工作負載名稱。
    2. 在「詳細資料」分頁中,按一下「取消註冊」,將服務或工作負載更新為「已探索」資源。
      在「服務和工作負載」分頁中,系統會顯示工作負載已取消註冊的警示。
    3. 針對每項服務和工作負載重複執行這些操作說明。
  4. 前往 App Hub 的「Applications」(應用程式) 頁面。

    前往「Applications」(應用程式)

  5. 按一下應用程式名稱。

  6. 在應用程式詳細資料頁面中,按一下「刪除」

  7. 如要從主專案中移除服務專案,請參閱本文的「新增或移除服務專案」一節。

  8. 如要從託管專案的指標範圍中移除服務專案,請按照下列步驟操作:

    1. 前往 Google Cloud 控制台的 「Settings」(設定) 頁面

      前往「設定」

      如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果

    2. 選取「指標範圍」
    3. 在「Google Cloud Projects」(Google Cloud 專案) 窗格中,按一下「Remove project」(移除專案),然後完成確認對話方塊。

gcloud

  1. 列出應用程式中已註冊的工作負載:

    gcloud apphub applications workloads list \
      --application=APPLICATION_NAME --project=HOST_PROJECT_ID \
      --location=REGION
    
  2. 從應用程式取消註冊工作負載:

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

    工作負載現在是可向應用程式註冊的已發現工作負載。

  3. 重複執行上一個指令,從應用程式中刪除其餘已註冊的工作負載。

  4. 列出應用程式中已註冊的服務:

    gcloud apphub applications services list \
      --application=APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    
  5. 從應用程式取消註冊服務:

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

    這項服務現在是可供探索的服務,可以註冊至應用程式。

  6. 重複執行上一個指令,從應用程式中取消註冊其餘已註冊的服務。

  7. 刪除應用程式:

    gcloud apphub applications delete APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    
  8. 從託管專案中移除服務專案:

    gcloud apphub service-projects remove SERVICE_PROJECT_ID \
      --project=HOST_PROJECT_ID
    
  9. 重複執行上一個指令,從託管專案中移除所有服務專案。

  10. 從主專案的指標範圍中移除服務專案 (預覽版):

    gcloud beta monitoring metrics-scopes delete projects/SERVICE_PROJECT_ID \
      --project=HOST_PROJECT_ID
    
  11. 重複執行上一個指令,從指標範圍託管專案中移除所有服務專案。

後續步驟