將現有資源註冊至應用程式

在 App Hub 應用程式中,將現有 Google Cloud 資源註冊為服務工作負載,即可根據資源的業務用途整理資源,簡化管理作業。這種做法可提供統一的瀏覽權限、監控、控管和營運控制。

本指南說明如何將尚未正式定義為應用程式的現有 Google Cloud 資源分組。

事前準備

您必須先完成應用程式管理的初始設定,才能將資源整理到應用程式中。這項程序通常需要下列角色和步驟:

建立應用程式

在 App Hub 中建立應用程式,做為現有 Google Cloud 資源的邏輯容器:

控制台

  1. 在 Google Cloud 控制台,使用專案選擇工具選取管理專案。
  2. 從 App Hub 前往「Applications」(應用程式) 頁面:

    前往「Applications」(應用程式)

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

  4. 在「選擇應用程式區域和名稱」窗格中,根據地理分布需求,為應用程式選取最佳位置:

    • 選取「區域」,建立區域應用程式。然後根據應用程式中心支援的區域,為應用程式選取特定區域。
    • 選取「全球」即可建立全球應用程式。

    如要進一步瞭解應用程式的最佳位置,請參閱「全球和區域應用程式」。

  5. 輸入應用程式名稱,然後按一下「繼續」。這個名稱是專屬 ID,只能包含小寫字母、數字或連字號。應用程式建立完成後,就無法再變更這個名稱。

  6. 選用:定義應用程式的頂層屬性,以支援探索和管理:

    • 在「新增屬性」部分,輸入「顯示名稱」。 顯示名稱並非專屬 ID,建立應用程式後仍可變更。
    • 在「Criticality」(重要性) 清單中,選取值來指出應用程式的重要性。
    • 在「環境」清單中選取值,指出軟體生命週期的階段。
    • 新增擁有者的聯絡資訊詳細資料,包括顯示名稱和電子郵件地址。請注意,電子郵件地址的格式必須為 username@yourdomain,例如 jane-doe@gmail.com
  7. 點選「建立」

gcloud

  1. 使用 Google Cloud CLI 從終端機或 Cloud Shell 建立應用程式:

    gcloud apphub applications create APPLICATION_NAME \
      --project=PROJECT_ID \
      --scope-type=LOCATION \
      --location=REGION \
      --display-name=DISPLAY_NAME \
      --criticality-type=CRITICALITY \
      --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
    

    APPLICATION_NAME 換成應用程式名稱。這個名稱是專屬 ID,只能包含小寫英文字母、數字或連字號。

    使用 --criticality-type 等選用標記定義應用程式的頂層屬性,並支援探索和管理。

    如要使用必要和選用旗標,請替換下列項目:

    • 必要:PROJECT_ID:管理專案的 ID。
    • 必要:LOCATION:根據地理分布需求,應用程式的適用地區。請使用下列其中一個值:

      • REGIONAL,適用於區域應用程式。
      • GLOBAL:適用於全球應用程式。

      如要進一步瞭解應用程式的最佳位置,請參閱「全球和區域應用程式」。

    • 必要:REGION:應用程式的特定區域。請使用下列其中一個值:

      • 如果應用程式的 --scope-type 位置設為 REGIONAL,請指定 App Hub 支援的區域名稱
      • 如果應用程式的 --scope-type 位置設為 GLOBAL,請使用 global
    • 選用:DISPLAY_NAME:應用程式的顯示名稱。顯示名稱並非專屬 ID,建立應用程式後仍可變更。

    • 選用:CRITICALITY:應用程式對營運的重要性程度。請使用下列其中一個值:

      • MISSION_CRITICAL
      • HIGH
      • MEDIUM
      • LOW
    • 選用:ENVIRONMENT:軟體生命週期的階段。請使用下列其中一個值:

      • PRODUCTION
      • STAGING
      • DEVELOPMENT
      • TEST
    • 選用:DEV_NAMEDEV_EMAIL 分別是開發人員擁有者的顯示名稱和電子郵件地址。

    • 選用:OPERATOR_NAMEOPERATOR_EMAIL 分別是營運商擁有者的顯示名稱和電子郵件地址。

    • 選用:BUSINESS_NAMEBUSINESS_EMAIL:分別是企業主的顯示名稱和電子郵件地址。

  2. 列出專案中的應用程式:

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

    您必須取得類似下列內容的輸出結果:

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

Terraform

如要使用 Terraform 建立應用程式,請使用google_apphub_application 資源。這個資源可讓您定義應用程式的屬性,包括名稱、位置和屬性。

以下範例會在 us-central1 中建立區域應用程式,並定義重要性、環境和擁有者屬性:

resource "google_apphub_application" "example" {
    project        = "my-project-id"
    location       = "us-central1"
    application_id = "my-application"
    display_name   = "My Application"
    description    = "This application represents our platform."
    scope {
        type = "REGIONAL"
    }
    attributes {
        criticality {
            type = "MISSION_CRITICAL"
        }
        environment {
            type = "PRODUCTION"
        }
        business_owners {
            display_name = "Alice"
            email        = "alice@example.com"
        }
        developer_owners {
            display_name = "Bob"
            email        = "bob@example.com"
        }
        operator_owners {
            display_name = "Charlie"
            email        = "charlie@example.com"
        }
    }
}

註冊服務和工作負載

您可以在 App Hub 中選取應用程式管理邊界內的支援資源,並註冊為服務和工作負載。建立應用程式後,請將現有Google Cloud 資源註冊為其中的服務和工作負載。

您只能將專屬服務註冊至一個應用程式。不過,共用服務可以註冊至多個應用程式。即使共用服務已註冊至其他應用程式,當您將這些服務註冊至應用程式時,App Hub 仍會探索到這些服務,但您可能無法修改其屬性。

控制台

  1. 在 Google Cloud 控制台,使用專案選擇工具選取管理專案。
  2. 從 App Hub 前往「Applications」(應用程式) 頁面:

    前往「Applications」(應用程式)

  3. 按一下要將現有 Google Cloud 資源註冊為服務和工作負載的應用程式名稱。

  4. 在應用程式的詳細資料頁面中,選取「服務和工作負載」分頁標籤。這個分頁會顯示現有資源清單,您可以向應用程式註冊這些資源。您可以在 App Hub 中,選取應用程式管理邊界內的支援資源做為服務或工作負載。

  5. 針對要註冊的每個服務或工作負載,請執行下列操作:

    1. 在「服務和工作負載」分頁中,按一下「註冊服務/工作負載」
    2. 前往「選取資源」窗格,然後按一下「瀏覽」,找出要註冊的服務或工作負載。
    3. 選擇服務或工作負載,然後按一下「選取」
    4. 在「選取資源」窗格中,輸入服務或工作負載的名稱,然後按一下「繼續」
    5. 選用:在「新增屬性」窗格中,定義資源的頂層屬性,以利探索及管理。

    6. 按一下「繼續」

    7. 選用:在「新增擁有者」部分,新增服務或工作負載擁有者的詳細資料。

    8. 按一下「註冊」

「服務和工作負載」分頁會顯示已註冊的服務或工作負載。

gcloud

App Hub 可讓您選取應用程式管理邊界內的支援資源做為服務或工作負載。使用 Google Cloud CLI 列出可從終端機或 Cloud Shell 註冊至應用程式的服務或工作負載。服務和工作負載的指令略有不同:

註冊服務

  1. 列出可向應用程式註冊的可用服務:

    gcloud apphub discovered-services list \
      --project=PROJECT_ID \
      --location=REGION \
      --filter=FILTER_EXPRESSION
    

    如要使用必要和選用旗標,請替換下列項目:

    • 必要:PROJECT_ID:管理專案的 ID。
    • 必要條件:REGION:服務的特定區域,取決於您的地理位置分布。請使用下列其中一個值:

    • 選用:FILTER_EXPRESSION--filter 旗標的篩選運算式,只顯示應用程式管理邊界內特定專案的服務,或具有特定屬性的服務,例如:

      • service_properties.gcp_project=projects/PROJECT_ID
      • service_properties.gcp_project=projects/PROJECT_ID AND service_reference.uri~"forwardingRules"

    輸出結果會與下列範例相似:

    ID            SERVICE_REFERENCE                                                                                             SERVICE_PROPERTIES
    SERVICE_ID    {'uri': '//compute.googleapis.com/projects/PROJECT_NUMBER/regions/REGION/forwardingRules/forwarding-rule'}    {'gcpProject': 'projects/PROJECT_ID', 'location': 'REGION'}
    
  2. 從輸出內容中複製服務 ID SERVICE_ID

  3. 將服務註冊到應用程式:

    gcloud apphub applications services create SERVICE_NAME \
      --project=PROJECT_ID \
      --location=REGION \
      --application=APPLICATION_NAME \
      --discovered-service=projects/PROJECT_ID/locations/REGION/discoveredServices/SERVICE_ID \
      --display-name=SERVICE_DISPLAY_NAME \
      --criticality-type=CRITICALITY \
      --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 替換為您要用於向應用程式註冊服務的名稱。

    使用 --criticality-type 等選用標記定義服務的頂層屬性,並支援探索和管理功能。

    如要使用必要和選用旗標,請替換下列項目:

    • 必要:PROJECT_ID:管理專案的 ID。
    • 必要:REGION:根據地理分布情況,服務的特定區域。請使用下列其中一個值:

    • 必要:APPLICATION_NAME:要註冊服務的應用程式名稱。

    • 必要:SERVICE_ID:您從上一個輸出內容複製的服務 ID。

    • 選用:SERVICE_DISPLAY_NAME:服務的顯示名稱。

    • 選用:CRITICALITY:服務對您營運的重要性程度。請使用下列其中一個值:

      • MISSION_CRITICAL
      • HIGH
      • MEDIUM
      • LOW
    • 選用:ENVIRONMENT:軟體生命週期的階段。請使用下列其中一個值:

      • PRODUCTION
      • STAGING
      • DEVELOPMENT
      • TEST
    • 選用:DEV_NAMEDEV_EMAIL:分別是開發人員擁有者的顯示名稱和電子郵件地址。

    • 選用:OPERATOR_NAMEOPERATOR_EMAIL:分別是營運商擁有者的顯示名稱和電子郵件地址。

    • 選用:BUSINESS_NAMEBUSINESS_EMAIL 分別為商家業主的顯示名稱和電子郵件地址。

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

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

    您必須為每個已註冊的服務取得類似下列內容的輸出:

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

註冊工作負載

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

    gcloud apphub discovered-workloads list \
      --project=PROJECT_ID \
      --location=REGION \
      --filter=FILTER_EXPRESSION
    

    如要使用必要和選用旗標,請替換下列項目:

    • 必要:PROJECT_ID:管理專案的 ID。
    • 必要條件:REGION:根據地理分布情況,工作負載的特定區域。請使用下列其中一個值:

    • 選用:FILTER_EXPRESSION--filter 旗標的篩選運算式,只顯示應用程式管理邊界內特定專案的工作負載,或具有特定屬性 (例如 workload_properties.gcp_project=projects/PROJECT_ID) 的工作負載。

    輸出結果會與下列範例相似:

    ID             WORKLOAD_REFERENCE                                                                                    WORKLOAD_PROPERTIES
    WORKLOAD_ID    {'uri': '//compute.googleapis.com/projects/PROJECT_NUMBER/regions/REGION/instanceGroups/mig-name'}    {'gcpProject': 'projects/PROJECT_ID', 'location': 'REGION'}
    
  2. 從輸出內容中複製工作負載 ID WORKLOAD_ID

  3. 將工作負載註冊至應用程式:

    gcloud apphub applications workloads create WORKLOAD_NAME \
      --project=PROJECT_ID \
      --location=REGION \
      --application=APPLICATION_NAME \
      --discovered-workload=projects/PROJECT_ID/locations/REGION/discoveredWorkloads/WORKLOAD_ID \
      --display-name=WORKLOAD_DISPLAY_NAME \
      --criticality-type=CRITICALITY \
      --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 替換為要用於向應用程式註冊工作負載的名稱。

    使用 --criticality-type 等選用標記定義工作負載的頂層屬性,並支援探索和管理。

    如要使用必要和選用旗標,請替換下列項目:

    • 必要:PROJECT_ID:管理專案的 ID。
    • 必要條件:REGION:根據地理分布情況,工作負載的特定區域。請使用下列其中一個值:

    • 必要:APPLICATION_NAME:要註冊工作負載的應用程式名稱。

    • 必要:WORKLOAD_ID:您從上一個輸出內容複製的工作負載 ID。

    • 選用:WORKLOAD_DISPLAY_NAME:工作負載的顯示名稱。

    • 選用:CRITICALITY:工作負載對您作業的重要性等級。請使用下列其中一個值:

      • MISSION_CRITICAL
      • HIGH
      • MEDIUM
      • LOW
    • 選用:ENVIRONMENT:軟體生命週期的階段。請使用下列其中一個值:

      • PRODUCTION
      • STAGING
      • DEVELOPMENT
      • TEST
    • 選用:DEV_NAMEDEV_EMAIL:分別是開發人員擁有者的顯示名稱和電子郵件地址。

    • 選用:OPERATOR_NAMEOPERATOR_EMAIL:分別是營運商擁有者的顯示名稱和電子郵件地址。

    • 選用:BUSINESS_NAMEBUSINESS_EMAIL 分別為商家業主的顯示名稱和電子郵件地址。

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

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

    您必須為每個已註冊的工作負載取得類似下列的輸出內容:

    ID               DISPLAY_NAME             WORKLOAD_REFERENCE                                                                                    CREATE_TIME
    WORKLOAD_NAME    WORKLOAD_DISPLAY_NAME    {'uri': '//compute.googleapis.com/projects/PROJECT_NUMBER/regions/REGION/instanceGroups/mig-name'}    2023-11-01T21:38:08
    

Terraform

如要使用 Terraform 在應用程式管理邊界內註冊資源,做為應用程式中的服務或工作負載,請使用 google_apphub_discovered_servicegoogle_apphub_discovered_workload 資料來源,動態擷取要註冊的資源相關資訊。 Google Cloud

接著,請使用 google_apphub_servicegoogle_apphub_workload 資源,分別註冊服務或工作負載。

註冊服務

  1. 使用服務的 URI 取得相關資訊:

    data "google_apphub_discovered_service" "my-service" {
        location = "REGION"
        service_uri = "SERVICE_URI"
    }
    
  2. 將探索到的服務註冊到應用程式,例如:

    resource "google_apphub_service" "example" {
        project            = "my-project-id"
        location           = "us-central1"
        application_id     = google_apphub_application.example.application_id
        service_id         = "frontend-load-balancer"
        discovered_service = data.google_apphub_discovered_service.my-forwarding-rule.name
        display_name       = "Frontend Load Balancer"
        description        = "The primary load balancer for the frontend."
    }
    

註冊工作負載

  1. 使用 URI 取得工作負載的相關資訊:

    data "google_apphub_discovered_workload" "my-workload" {
        location = "REGION"
        workload_uri = "WORKLOAD_URI"
    }
    
  2. 將找到的工作負載註冊到應用程式,例如:

    resource "google_apphub_workload" "example" {
        project             = "my-project-id"
        location            = "us-central1"
        application_id      = google_apphub_application.example.application_id
        workload_id         = "frontend-instance-group"
        discovered_workload = data.google_apphub_discovered_workload.my-mig.name
        display_name        = "Frontend Instance Group"
        description         = "The managed instance group for the frontend."
    }
    

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

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

授予權限並開始作業

在 App Hub 中建立應用程式並註冊服務和工作負載後,您必須根據生命週期責任授予使用者存取權,才能以單一單元管理這個邏輯群組:

  1. 您可以視存取需求,授予個別應用程式或所有應用程式權限。如需建議角色清單,請參閱授予使用者以應用程式為中心的角色
  2. 您也可以前往 Cloud Hub,查看所定義應用程式的統一營運資訊主頁,包括健康狀態、效能和費用資料。