建立及驗證範本

本快速入門導覽課程可協助您建立及部署三層式網頁應用程式範本,其中包含前端、後端和資料庫元件。下圖顯示設計畫布,包括應用程式元件和連線。

設計畫布中的三層式網頁應用程式。應用程式包含前端、後端和資料庫元件。

您可以使用下列任一方式設計範本:

完成設計後,請在 App Design Center 部署測試應用程式,驗證範本。


如要直接在 Google Cloud 控制台中,按照這項工作的逐步指南操作,請按一下「Guide me」(逐步引導)

「Guide me」(逐步引導)


事前準備

  1. 設定 App Design Center

  2. 在已啟用應用程式管理功能的資料夾建立子系專案

    部署應用程式時,您會將 Google Cloud 資源部署至這項專案。

  3. 請確保您已為子系專案啟用計費功能

設定工具

您可以使用下列任一方法完成本快速入門導覽課程。

  • 使用 Google Cloud 控制台中的設計畫布。

  • 如要使用 Gemini Cloud Assist 建立設計,請參閱「設定 Gemini Cloud Assist」。

  • 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
  • 安裝 Google Cloud CLI。

  • 若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

  • 執行下列指令,初始化 gcloud CLI:

    gcloud init
  • 安裝 Google Cloud CLI。

  • 若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

  • 執行下列指令,初始化 gcloud CLI:

    gcloud init

確認您具備必要角色

  1. 為建立範本,請確保您在管理專案具備下列其中一個角色:

  2. 為部署應用程式,請確保您在管理專案具備下列其中一個角色:

  3. 如要在部署期間建立服務帳戶,請確保您具備下列角色:

    • 如要建立服務帳戶,您必須在管理專案中擁有「建立服務帳戶」(roles/iam.serviceAccountCreator) 角色。

    • 如要授予服務帳戶子系專案的存取權,您必須在子系專案中具備「專案 IAM 管理員」(roles/resourcemanager.projectIamAdmin) 角色。

建立新的範本並新增詳細資料

設計畫布

  1. 前往 Google Cloud 控制台的「Templates」(範本) 頁面。

    前往「範本」頁面

  2. 點選「建立範本」,然後輸入下列詳細資料:

    1. 在「Template ID」(範本 ID) 欄位輸入 quickstart-three-tier-web-app

    2. 在「Template Name」(範本名稱) 欄位輸入 Quickstart three-tier web app

    3. 在「Description」(說明) 欄位輸入 A template to generate a three-tier web application

    4. 點選「Create template」(建立範本)。

    系統會建立範本,並顯示設計畫布。

  3. 在「Components」(元件) 區塊點選下列元件,將其新增至設計畫布:

    • 「Cloud Run」 (新增兩項元件)
    • 「Cloud SQL (PostgreSQL)」
  4. 為了在元件之間建立連線,請按照下列步驟操作:

    1. 從「cloud-run-1」底部的藍點拖曳至「cloud-run-2」頂端的藍點。

    2. 從「cloud-run-2」底部的藍點拖曳至「sql-postgresql-1」頂端的藍點。

    範本內含三項元件。畫布會顯示元件之間的線條,代表連線。

Gemini Cloud Assist

  1. 在 Google Cloud 控制台工具列,點選「spark」「開啟或關閉 Gemini Cloud Assist 對話」

    「Cloud Assist」面板隨即開啟。

  2. 在 Gemini Cloud Assist 對話中輸入下列提示:

    I want to create a three-tier web application.
    

    Gemini Cloud Assist 會生成三層式網頁應用程式的基本設計。

  3. 如要移除負載平衡器和 Secret Manager 元件,請輸入下列提示:

    I don't need load balancers or Secret Manager.
    

    Gemini Cloud Assist 會更新設計,移除元件。

  4. 查看更新後的設計,其中包含下列元件:

    • Cloud Run (兩項元件)
    • PostgreSQL 適用的 Cloud SQL
  5. 按一下「編輯應用程式設計」

    系統會顯示「建立新範本」頁面。

  6. 輸入下列範本詳細資料:

    1. 在「Template ID」(範本 ID) 欄位輸入 quickstart-three-tier-web-app

    2. 在「Template Name」(範本名稱) 欄位輸入 Quickstart three-tier web app

    3. 在「Description」(說明) 欄位輸入 A template to generate a three-tier web application

  7. 點選「Create template」(建立範本)。

    系統會建立新的範本,並顯示設計畫布。

gcloud CLI

  1. 建立應用程式範本。

    gcloud design-center spaces application-templates create quickstart-three-tier-web-app \
    --display-name="Quickstart three-tier web app" \
    --description="A template to generate a three-tier web application" \
    --space=SPACE \
    --location=us-central1 \
    --project=MANAGEMENT_PROJECT_ID
    
  2. 列出 Google 目錄中的共用範本。

    gcloud design-center spaces shared-templates list \
    --google-catalog \
    --location=us-central1
    
    1. 找出 Cloud Run 和 Cloud SQL 的共用範本 ID。
  3. 新增做為前端的 Cloud Run 元件。

    gcloud design-center spaces application-templates components create cloud-run-1 \
    --application-template=quickstart-three-tier-web-app \
    --shared-template-revision-uri=google/1b5e09c8-780f-484e-b8ed-c7178f4e4342 \
    --space=SPACE \
    --location=us-central1 \
    --project=MANAGEMENT_PROJECT_ID
    
  4. 新增第二個 Cloud Run 元件做為後端。

    gcloud design-center spaces application-templates components create cloud-run-2 \
    --application-template=quickstart-three-tier-web-app \
    --shared-template-revision-uri=google/1b5e09c8-780f-484e-b8ed-c7178f4e4342 \
    --space=SPACE \
    --location=us-central1 \
    --project=MANAGEMENT_PROJECT_ID
    
  5. 新增 Cloud SQL 元件。

    gcloud design-center spaces application-templates components create sql-postgresql-1 \
    --application-template=quickstart-three-tier-web-app \
    --shared-template-revision-uri=google/45be1bc2-89bc-477b-9b5d-64c41ff3b146 \
    --space=SPACE \
    --location=us-central1 \
    --project=MANAGEMENT_PROJECT_ID
    
  6. 將 cloud-run-1 連線至 cloud-run-2。

     gcloud design-center spaces application-templates components connections create frontend-to-backend \
     --application-template=quickstart-three-tier-web-app \
     --component=cloud-run-1 \
     --destination-component-uri=cloud-run-2 \
     --space=SPACE \
     --location=us-central1 \
     --project=MANAGEMENT_PROJECT_ID
    
  7. 將 cloud-run-2 連線至 sql-postgresql-1。

     gcloud design-center spaces application-templates components connections create backend-to-database \
     --application-template=quickstart-three-tier-web-app \
     --component=cloud-run-2 \
     --destination-component-uri=sql-postgresql-1 \
     --space=SPACE \
     --location=us-central1 \
     --project=MANAGEMENT_PROJECT_ID
    
  8. 提交變更,建立應用程式範本修訂版本。

     gcloud design-center spaces application-templates commit quickstart-three-tier-web-app \
     --space=SPACE \
     --location=us-central1 \
     --project=MANAGEMENT_PROJECT_ID
    

建立應用程式草稿

設計畫布

  1. 點選設計畫布中的「Configure an app」(設定應用程式)。

  2. 點選「Create new application」(建立新的應用程式),然後照下列步驟操作:

    1. 在「Name」(名稱) 欄位輸入 quickstart-three-tier-test

    2. 在「Display name」(顯示名稱) 欄位輸入 Quickstart three-tier test

    3. 從「Region」(區域) 清單中選取「us-central1 (Iowa)」。

    4. 從「Environment」(環境) 清單中選取「Test」。

    5. 從「Criticality」(重要性) 清單中選取「Low」。

    6. 在「Scope」(範圍) 區塊,從「Application scope」(應用程式範圍) 清單中選取「Regional」。

  3. 點選「Create Application」(建立應用程式)

    系統會建立應用程式草稿。

gcloud CLI

  1. 找出應用程式範本的最新修訂版本 URI。

     gcloud design-center spaces application-templates describe quickstart-three-tier-web-app \
     --space=SPACE \
     --location=us-central1 \
     --project=MANAGEMENT_PROJECT_ID \
     --format='yaml(name,latestRevision)'
    
  2. 根據範本建立應用程式草稿。

       gcloud design-center spaces applications create quickstart-three-tier-test \
       --space=SPACE \
       --location=us-central1 \
       --project=MANAGEMENT_PROJECT_ID \
       --source-application-template-revision=projects/MANAGEMENT_PROJECT_ID/locations/us-central1/spaces/SPACE/applicationTemplates/quickstart-three-tier-web-app/revisions/TEMPLATE_REVISION \
       --display-name="Quickstart three-tier test" \
       --environment-type=test \
       --criticality-type=low \
       --scope-type=regional \
       --deployment-region=us-central1
    

設定元件

設計畫布

  1. 點選設計畫布中的「cloud-run-1」,然後在「Configuration」(設定) 區塊執行下列操作:

    1. 從「Project ID」(專案 ID) 清單中,選取您在「事前準備」中建立的子系專案。 資源會部署至這個專案。

    2. 在「Service Name」(服務名稱) 欄位輸入 frontend-service

    3. 點選「Save」(儲存)

  2. 點選設計畫布中的「cloud-run-2」,然後在「Configuration」(設定) 區塊執行下列操作:

    1. 從「Project ID」(專案 ID) 清單中,選取您在「事前準備」中建立的子系專案。 資源會部署至這個專案。

    2. 在「Service Name」(服務名稱) 欄位輸入 backend-service

    3. 點選「Save」(儲存)

  3. 點選設計畫布中的「sql-postgresql-1」,然後在「Configuration」(設定) 區塊執行下列操作:

    1. 從「Project ID」(專案 ID) 清單中,選取您在「事前準備」中建立的子系專案。 資源會部署至這個專案。

    2. 在「Name」(名稱) 欄位中輸入 database-postgresql

    3. 從「Database Version」(資料庫版本) 清單中選取「POSTGRES_15」。

    4. 在「Zone」(可用區) 下拉式清單中選取「us-central1-a」。

    5. 點選「Save」(儲存)

    畫布會在各項元件顯示綠色勾號,代表您已指定必要參數。接著,您就能將應用程式草稿部署至 Test 環境來驗證。

gcloud CLI

  1. 說明應用程式,找出必要的設定參數。

     gcloud design-center spaces applications describe quickstart-three-tier-test \
     --space=SPACE \
     --location=us-central1 \
     --project=MANAGEMENT_PROJECT_ID \
     --format='yaml(name,componentParameters)'
    
  2. 為每個元件在主目錄中建立 JSON 檔案,內含必要參數值。

    1. 建立 frontend-service.json

       {
         "component": "projects/MANAGEMENT_PROJECT_ID/locations/us-central1/spaces/SPACE/applicationTemplates/quickstart-three-tier-web-app/components/cloud-run-1",
         "parameters": [
            {
               "key": "service_name",
               "value": "frontend-service"
            },
            {
               "key": "project_id",
               "value": "DEPLOYMENT_PROJECT_ID"
            }
         ]
       }
      
    2. 建立 backend-service.json

       {
         "component": "projects/MANAGEMENT_PROJECT_ID/locations/us-central1/spaces/SPACE/applicationTemplates/quickstart-three-tier-web-app/components/cloud-run-2",
         "parameters": [
            {
               "key": "service_name",
               "value": "backend-service"
            },
            {
               "key": "project_id",
               "value": "DEPLOYMENT_PROJECT_ID"
            }
         ]
       }
      
    3. 建立 database-postgresql.json

       {
         "component": "projects/MANAGEMENT_PROJECT_ID/locations/us-central1/spaces/SPACE/applicationTemplates/quickstart-three-tier-web-app/components/sql-postgresql-1",
         "parameters": [
            {
               "key": "name",
               "value": "database-postgresql"
            },
            {
               "key": "project_id",
               "value": "DEPLOYMENT_PROJECT_ID"
            },
            {
               "key": "database_version",
               "value": "POSTGRES_15"
            },
            {
               "key": "region",
               "value": "us-central1"
            },
            {
               "key": "zone",
               "value": "us-central1-a"
            }
         ]
       }
      
  3. 更新應用程式,設定必要參數。

     gcloud design-center spaces applications update quickstart-three-tier-test \
     --space=SPACE \
     --location=us-central1 \
     --project=MANAGEMENT_PROJECT_ID \
     --component-parameters=./frontend-service.json \
     --component-parameters=./backend-service.json \
     --component-parameters=./database-postgresql.json
    

部署應用程式

設計畫布

  1. 按一下「Deploy」(部署)

  2. 在「Select a service account」(選取服務帳戶) 區塊執行下列操作:

    1. 點選「Create a new service account」(建立新的服務帳戶)

    2. 按一下 [繼續]

  3. 按一下 [Deploy] (部署)

    幾分鐘之後,系統會部署應用程式,並在專案建立資源。系統會顯示下列詳細資料:

    • App Hub 的連結,讓您查看已部署資源的詳細資料,包含監控功能資訊主頁的連結。
    • Cloud Build 記錄的連結,以便您解決部署作業錯誤。
    • 系統會顯示服務 URI 等輸出內容,以便您使用已部署的資源。
  4. 如要依據這項快速入門導覽課程建構內容,請參閱更新應用程式範本並重新部署的相關說明。

gcloud CLI

  1. 說明應用程式,找出部署服務帳戶所需的 IAM 角色。

     gcloud design-center spaces applications describe quickstart-three-tier-test \
     --space=SPACE \
     --location=us-central1 \
     --project=MANAGEMENT_PROJECT_ID \
     --format='yaml(name,projectParameters)'
    
  2. 建立新的服務帳戶來部署應用程式。

     gcloud iam service-accounts create quickstart-service-account \
     --project=MANAGEMENT_PROJECT_ID \
     --display-name="Quickstart service account" \
     --description="A service account to deploy the ADC quickstart"
    
  3. 將必要的部署專案角色新增至服務帳戶。

    #!/bin/bash
    
    PROJECT_ID="DEPLOYMENT_PROJECT_ID"
    SERVICE_ACCOUNT="quickstart-service-account@MANAGEMENT_PROJECT_ID.iam.gserviceaccount.com"
    
    ROLES=(
    "roles/iap.admin"
    "roles/compute.networkAdmin"
    "roles/compute.viewer"
    "roles/run.admin"
    "roles/iam.serviceAccountAdmin"
    "roles/serviceusage.serviceUsageAdmin"
    "roles/cloudkms.admin"
    "roles/logging.logWriter"
    "roles/iam.serviceAccountUser"
    "roles/cloudsql.admin"
    "roles/cloudkms.autokeyAdmin"
    "roles/storage.admin"
    "roles/serviceusage.serviceUsageViewer"
    "roles/resourcemanager.projectIamAdmin"
    "roles/cloudkms.cryptoKeyEncrypterDecrypter"
    )
    
    for role in "${ROLES[@]}"; do
    echo "Adding role: ${role}"
    gcloud projects add-iam-policy-binding "${PROJECT_ID}" \
       --member="serviceAccount:${SERVICE_ACCOUNT}" \
       --role="${role}"
    echo "---"
    done
    
    echo "Finished adding roles."
    
  4. 將必要的管理專案角色新增至服務帳戶。

    #!/bin/bash
    
    PROJECT_ID="MANAGEMENT_PROJECT_ID"
    SERVICE_ACCOUNT="quickstart-service-account@MANAGEMENT_PROJECT_ID.iam.gserviceaccount.com"
    
    ROLES=(
    "roles/config.agent"
    "roles/apphub.editor"
    )
    
    for role in "${ROLES[@]}"; do
    echo "Adding role: ${role}"
    gcloud projects add-iam-policy-binding "${PROJECT_ID}" \
       --member="serviceAccount:${SERVICE_ACCOUNT}" \
       --role="${role}"
    echo "---"
    done
    
    echo "Finished adding roles."
    
  5. 找出管理專案編號。

    gcloud projects describe MANAGEMENT_PROJECT_ID \
    --format="value(projectNumber)"
    
  6. 在管理專案中,為 roles/iam.serviceAccountUser 角色新增 IAM 政策繫結。

    gcloud iam service-accounts add-iam-policy-binding projects/MANAGEMENT_PROJECT_ID/serviceAccounts/quickstart-service-account@MANAGEMENT_PROJECT_ID.iam.gserviceaccount.com \
    --project=MANAGEMENT_PROJECT_ID \
    --member="serviceAccount:service-MANAGEMENT_PROJECT_NUMBER@gcp-sa-designcenter.iam.gserviceaccount.com" \
    --role="roles/iam.serviceAccountUser"
    
  7. 更新應用程式,改用服務帳戶。

    gcloud design-center spaces applications update quickstart-three-tier-test \
    --space=SPACE \
    --location=us-central1 \
    --project=MANAGEMENT_PROJECT_ID \
    --service-account=projects/MANAGEMENT_PROJECT_ID/serviceAccounts/quickstart-service-account@MANAGEMENT_PROJECT_ID.iam.gserviceaccount.com
    
  8. 為使用者授予服務帳戶的 actAs 權限。

    gcloud iam service-accounts add-iam-policy-binding quickstart-service-account@MANAGEMENT_PROJECT_ID.iam.gserviceaccount.com \
    --project=MANAGEMENT_PROJECT_ID \
    --member="user:USER" \
    --role="roles/iam.serviceAccountUser"
    

    USER是您的 Google Cloud 使用者。例如:dana@example.com

  9. 預覽應用程式:

    預覽畫面需要幾分鐘才能生成。

    gcloud design-center spaces applications preview quickstart-three-tier-test \
    --location=us-central1 \
    --space=SPACE \
    --project=MANAGEMENT_PROJECT_ID
    
  10. 部署應用程式。

    gcloud design-center spaces applications deploy quickstart-three-tier-test \
    --space=SPACE \
    --location=us-central1 \
    --project=MANAGEMENT_PROJECT_ID \
    --async
    
  11. 找出作業 ID。

  12. 部署作業需要幾分鐘才會完成。追蹤部署狀態。

    gcloud design-center operations describe operation-OPERATION_ID \
    --space=SPACE \
    --location=us-central1 \
    --project=MANAGEMENT_PROJECT_ID
    
  13. 部署完成後,請找出應用程式輸出參數。

     gcloud design-center spaces applications describe quickstart-three-tier-test \
     --space=SPACE \
     --location=us-central1 \
     --project=MANAGEMENT_PROJECT_ID \
     --format='yaml(name,appParameters,componentParameters,deploymentMetadata,deploymentRevision,previewReference)'
    

選用:監控部署作業

部署應用程式後,您可以使用應用程式監控功能查看應用程式遙測資料,並監控健康狀態和效能:

  1. 前往 Google Cloud 控制台的「Application monitoring」頁面:

    前往「應用程式監控」

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

  2. 在 Google Cloud 控制台的專案挑選器中,選取管理專案。

  3. 如需如何使用預先定義的資訊主頁及探索遙測資料的詳細操作說明,請參閱「查看應用程式遙測資料」。

您也可以在 Cloud Hub 中取得額外的健康狀態和效能資訊,包括部署失敗和可更新的部署作業、影響應用程式的事件相關資訊,以及即將達到配額限制的服務。 Google Cloud

清除所用資源

為了避免系統向您的 Google Cloud 帳戶收取本頁面所用資源的費用,請刪除含有這些資源的 Google Cloud 專案。

刪除已部署的應用程式

  1. 點選導覽選單中的「Applications」(應用程式)

    前往「Applications」(應用程式)

  2. 點選表格中的「Quickstart three-tier web app」(快速入門導覽課程三層式網頁應用程式)

  3. 點選 「Actions」(動作) ,然後選取「Delete application」(刪除應用程式)

  4. 在「Delete」(刪除) 欄位輸入 Quickstart three-tier web app

  5. 點選「Delete」(刪除)。

系統會刪除應用程式,包括:

  • 將應用程式詳細資料從 App Design Center 中移除。
  • 刪除底層 App Hub 應用程式。
  • 刪除底層資源。

(選用) 刪除專案

如要刪除您在「事前準備」中建立的子系專案,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Manage resources」(管理資源) 頁面。

    前往「Manage resources」(管理資源)

  2. 從專案清單中選取要刪除的專案,然後點選「Delete」(刪除)
  3. 收到提示時,請輸入專案 ID,然後點選「Shut down」(關閉)

後續步驟