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

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

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

事前準備

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

建立應用程式

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

控制台

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

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

    前往「Applications」(應用程式)

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

  4. 在「應用程式詳細資料」分頁中,根據地理分佈需求,為應用程式選取最佳位置:

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

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

  5. 輸入應用程式名稱。

    這個名稱是不重複的 ID,只能包含小寫字母、數字或連字號。應用程式建立後,您就無法變更這個名稱。

  6. 視需要新增應用程式的顯示名稱和說明。

    這些並非專屬 ID,建立應用程式後仍可變更。

  7. 按一下「繼續」

  8. 在「應用程式資源」分頁中,瀏覽基礎架構資源,然後勾選要註冊為應用程式服務和工作負載的資源核取方塊。

    一次最多可選取 10 項資源。

  9. 按一下「繼續」

  10. 在「屬性和擁有者」分頁中,您可以為應用程式新增屬性,例如重要性、環境和應用程式擁有者。

    您可以選擇為註冊至應用程式的資源使用相同屬性和擁有者,或稍後再定義

  11. 點選「建立」

建立應用程式後,「應用程式」頁面會顯示應用程式詳細資料,包括您註冊為服務和工作負載的資源。建立應用程式後,您可以註冊更多服務和工作負載

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」(應用程式)

  3. 按一下要註冊資源的應用程式名稱。Google Cloud

  4. 在應用程式頁面中,選取「服務和工作負載」分頁標籤。

  5. 按一下 「註冊服務或工作負載」

  6. 在「服務和工作負載」分頁中,瀏覽基礎架構資源,然後選取要註冊為應用程式服務或工作負載的資源核取方塊。

    一次最多可選取 10 項資源。

  7. 按一下「繼續」

  8. 在「屬性和擁有者」分頁中,您可以為這些資源新增屬性,例如重要性、環境和資源擁有者。

    您可以選擇使用應用程式中的相同屬性和擁有者,或稍後定義不同的屬性

  9. 按一下「註冊」

「服務和工作負載」分頁會顯示應用程式的所有已註冊服務和工作負載。

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
    

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

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

    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,查看所定義應用程式的統一營運資訊主頁,包括健康狀態、效能和費用資料。