建立及驗證範本

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

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

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

完成設計後,請在 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」。

  • Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  • Install the Google Cloud CLI.

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

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

    gcloud init
  • Install the 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」(關閉)

    後續步驟