設計複合範本

如要使用較小的可重複使用建構區塊建構複雜應用程式,請建立複合範本。舉例來說,您可以建立複合式範本,其中包含多個已連結的應用程式範本。

您也可以建立複合範本,為使用 App Lifecycle Manager 部署的 SaaS 產品,建立部署單元模型並封裝。詳情請參閱「模型和套件部署單元」。

新增及連結標準應用程式範本和個別元件,設計複合式範本。這種模組化方法可讓您執行下列操作:

  • 加快開發速度:從較小的建構區塊組裝複雜的應用程式。您可以在多個複合範本中重複使用每個標準應用程式範本。
  • 啟用平行開發:讓模組化團隊專注於特定建構區塊。舉例來說,資料庫團隊可以處理資料儲存和分析作業,盡量減少對應用程式邏輯團隊的依賴。
  • 減少安全漏洞影響:開發人員可以更新或修正建構區塊,不必重新部署整個應用程式。
  • 提升資安態勢:建立不同的服務帳戶來部署每個構成元素,藉此限制存取權。確保每個團隊只擁有他們設定的建構區塊權限。

本文說明如何設計、驗證及共用複合範本。

事前準備

如要執行本文中的工作,請要求管理員在啟用應用程式的資料夾管理專案中,授予您下列表格列出的必要角色:

工作 必要的角色
建立、設計及編輯複合範本 App Design Center 管理員 (roles/designcenter.admin) 或 App Design Center 使用者 (roles/designcenter.user)
將複合範本發布或分享至目錄 App Design Center 管理員 (roles/designcenter.admin)

如要進一步瞭解角色,請參閱「使用 IAM 控管存取權」。

如要使用自己的標準應用程式範本做為建構區塊,請設定輸入和輸出變數來建立可設定的變數,並在應用程式範本之間建立連線。詳情請參閱以下說明:

建立複合式應用程式範本

如要設計及共用複雜應用程式,請建立複合範本。您可以在範本設計中新增及連結下列項目:

  • 標準應用程式範本:從下列現有範本中選取:

  • 元件:從下列 Google Cloud 資源中選取:

指定範本詳細資料

範本詳細資料可協助您分類範本,並幫助開發人員決定是否要使用範本。

如要輸入範本詳細資料,請按照下列步驟操作:

設計畫布

  1. 按一下導覽選單中的「範本」

    前往「範本」頁面

  2. 從「Region」(區域) 清單中選取範本的位置。如要在 App Lifecycle Manager 中建立大規模部署,請選取「global」

  3. 從「建立範本」清單中,選取「複合範本」

  4. 系統會自動填入「範本 ID」欄位。或者,輸入範本的專屬 ID。這是必填欄位。

  5. 在「範本名稱」欄位中,輸入要顯示在 Google Cloud 控制台中的易讀 ID。

    如果未提供名稱,系統會將範本 ID 複製到這個欄位。

  6. 在「Description」(說明) 欄位中,簡要說明應用程式的用途。

  7. 按一下「建立範本」,系統會顯示設計畫布。

gcloud CLI

建立新的複合應用程式範本。

gcloud design-center spaces application-templates create APPLICATION_TEMPLATE \
--project=PROJECT \
--location=LOCATION \
--space=SPACE \
--display-name=DISPLAY_NAME \
--description=DESCRIPTION \
--composition-type=COMPOSITE

更改下列內容:

  • APPLICATION_TEMPLATE:要建立的應用程式範本範本 ID。
  • PROJECT:您的管理專案 ID。
  • LOCATION:應用程式範本區域。如果您打算在 App Lifecycle Manager 中建立大規模部署,請使用全域
  • SPACE:您的空間 ID。
  • DISPLAY_NAME:要在 Google Cloud 控制台中顯示的名稱。
  • DESCRIPTION:簡短說明。

詳情請參閱「gcloud design-center spaces application-templates create」。

設計範本

新增標準應用程式範本和元件,並連結至下列起點,即可設計複合範本:

設計範本時,App Design Center 會產生 Terraform 程式碼,反映設計和設定詳細資料。

如要設計範本,請按照下列步驟操作:

設計畫布

  1. 在設計畫布中選取「設計」,即可查看畫布。

  2. 如要開始使用,請執行下列任一操作:

    • 如要從 Google 提供的範本開始,請在畫布的「開始使用」區域中,按一下範本名稱。

    • 如要從空白畫布開始,請繼續執行下一步。

  3. 如要在畫布中新增標準應用程式範本,請按照下列步驟操作:

    1. 在「Components」(元件) 區域,按一下「Embed templates」(嵌入範本)

    2. 如要新增現有範本,請在下列任一清單中點選範本:

      • 範本:工作區目錄中的標準應用程式範本,或已與工作區共用的範本。
      • Google 範本:由 Google 建立並新增至 Google 目錄的標準應用程式範本。
    3. 如要將選取的範本新增至畫布,請按一下「選取」

  4. 如要建立新的標準應用程式範本,請按一下「建立新範本」。「建立新範本」頁面隨即開啟。

    詳情請參閱「設計標準應用程式範本」。

  5. 如要在畫布中新增元件,請在「Components」(元件) 區域點選元件。

  6. 如要在範本和元件之間建立通訊管道,請執行下列任一操作:

    • 從一個構成元素的藍點拖曳到另一個構成元素的藍點。

    • 如要將連結的元件新增至現有元件,請按一下「新增」,然後選取要新增的元件。

    如需連線詳細資料,請參閱各支援資源的設定說明文件。

  7. 如要移除構成元素或連結,請按照下列步驟操作:

    1. 在畫布中,按一下構成元素或連線。

    2. 在「設定」區域中,按一下「刪除」

    3. 在欄位中輸入 delete

    4. 點選「刪除」

gcloud CLI

  1. 找出空間目錄中建構區塊的範本修訂版本 URI。

    gcloud design-center spaces shared-templates list \
    --project=PROJECT \
    --location=LOCATION \
    --space=SPACE
    

    更改下列內容:

    • PROJECT:您的管理專案 ID。
    • LOCATION:應用程式範本區域。
    • SPACE:您的空間 ID。

    詳情請參閱 gcloud design-center spaces shared-templates list

  2. 找出要新增至範本的 Google 目錄建構區塊範本修訂版本 URI。

    gcloud design-center spaces shared-templates list \
    --google-catalog \
    --location=us-central1
    

    詳情請參閱 gcloud design-center spaces shared-templates list

  3. 將標準應用程式範本或元件新增至複合範本。

    gcloud design-center spaces application-templates components create COMPONENT \
    --project=PROJECT \
    --location=LOCATION \
    --space=SPACE \
    --application-template=APPLICATION_TEMPLATE \
    --shared-template-revision-uri=SHARED_TEMPLATE_URI
    

    更改下列內容:

    • COMPONENT:要新增至範本的標準應用程式範本或元件 ID。
    • PROJECT:您的管理專案 ID。
    • LOCATION:應用程式範本區域。
    • SPACE:您的空間 ID。
    • APPLICATION_TEMPLATE:您要新增標準應用程式範本或元件的複合應用程式範本 ID。
    • SHARED_TEMPLATE_URI:標準應用程式範本或共用範本 URI。例如:projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1

    詳情請參閱 gcloud design-center spaces application-templates components create

  4. 在範本中新增第二個標準應用程式範本或元件。

    gcloud design-center spaces application-templates components create COMPONENT_2 \
    --project=PROJECT \
    --location=LOCATION \
    --space=SPACE \
    --application-template=APPLICATION_TEMPLATE \
    --shared-template-revision-uri=SHARED_TEMPLATE_URI_2
    

    更改下列內容:

    • COMPONENT_2:要新增至範本的第二個標準應用程式範本或元件 ID。
    • PROJECT:您的管理專案 ID。
    • LOCATION:應用程式範本區域。
    • SPACE:您的空間 ID。
    • APPLICATION_TEMPLATE:要新增標準應用程式範本或元件的複合範本範本 ID。
    • SHARED_TEMPLATE_URI_2:第二個標準應用程式範本或共用範本 URI。例如:projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1

    詳情請參閱 gcloud design-center spaces application-templates components create

  5. 在標準應用程式範本或元件之間建立連線。

    gcloud design-center spaces application-templates components connections create CONNECTION \
    --project=PROJECT \
    --location=LOCATION \
    --space=SPACE \
    --application-template=APPLICATION_TEMPLATE \
    --component=COMPONENT \
    --destination-component-uri=COMPONENT_2
    

    更改下列內容:

    • CONNECTION:要新增至範本的連線 ID。
    • PROJECT:您的管理專案 ID。
    • LOCATION:應用程式範本區域。
    • SPACE:您的空間 ID。
    • APPLICATION_TEMPLATE:要新增連結的應用程式範本 ID。
    • COMPONENT:來源標準應用程式範本或元件 ID。
    • COMPONENT_2:目的地標準應用程式範本或元件 ID。

    詳情請參閱「gcloud design-center spaces application-templates components connections create」。

設定元件的預設值

針對您新增至範本的每個元件,您可以指定預設設定詳細資料,例如資源的專案和部署位置。從這個範本建立應用程式時,App Design Center 會套用這些預設值。

如果預設設定不符合需求,應用程式開發人員也可以修改連線詳細資料。舉例來說,您可以在建立應用程式時修改環境變數金鑰名稱、變更連線埠,或為服務帳戶新增其他角色。

開發人員部署應用程式前,可以查看及修改您在範本中設定的預設值。開發人員必須為每個支援的資源設定必要詳細資料。

如要設定元件和連線,請按照下列步驟操作:

設計畫布

  1. 在設計畫布中點選元件。

  2. 在「Configuration」(設定) 區域,從「Project ID」(專案 ID) 清單中,選取要部署資源的專案。選取符合下列資格的專案:

  3. 設定資源的其他設定。舉例來說,您可以為 Cloud SQL 設定下列項目:

    • 區域
    • 備份設定
    • 資料庫標記
    • IP 設定

    如要查看各元件的設定說明文件連結,請參閱「支援的資源」。

  4. 在設計畫布上連結元件時,系統會使用預設設定值建立連結。如要新增或修改連線詳細資料,請按照下列步驟操作。

    1. 在設計畫布中,按一下兩個元件之間的連線。「連線」面板隨即開啟,並顯示連線參數。

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

      • 如要修改現有的連線參數,請按一下「編輯」

      • 如要新增連線參數,請按一下「新增參數」

    3. 更新「鍵」和「值」欄位。舉例來說,您可能想修改下列詳細資料:

      • 環境變數鍵名,可配合應用程式需求調整。
      • 連線埠值。
      • 新增至服務帳戶的角色。
  5. 按一下 [儲存]

gcloud CLI

  1. 說明應用程式範本中的每個元件,即可查看元件參數。

    gcloud design-center spaces application-templates components describe COMPONENT \
    --project=PROJECT \
    --location=LOCATION \
    --space=SPACE \
    --application-template=APPLICATION_TEMPLATE
    

    更改下列內容:

    • COMPONENT:要說明的元件 ID。
    • PROJECT:您的管理專案 ID。
    • LOCATION:應用程式範本區域。
    • SPACE:您的空間 ID。
    • APPLICATION_TEMPLATE:應用程式範本的範本 ID。

    詳情請參閱 gcloud design-center spaces application-templates components describe

  2. 如要修改每個元件,請在主目錄中建立含有參數值的 JSON 檔案。

    舉例來說,您可以為 Cloud Run 元件建立下列檔案:

      [
          {
            "key": "service_name",
            "value": "frontend-service"
          },
          {
            "key": "project_id",
            "value": "DEPLOYMENT_PROJECT"
          }
      ]
    
  3. 更新應用程式範本中的每個元件,設定必要參數。

    gcloud design-center spaces application-templates components update COMPONENT \
    --project=PROJECT \
    --location=LOCATION \
    --space=SPACE \
    --parameters=PARAMETERS_FILE_PATH \
    --application-template=APPLICATION_TEMPLATE
    

    更改下列內容:

    • COMPONENT:要更新的元件 ID。
    • PROJECT:您的管理專案 ID。
    • LOCATION:應用程式範本區域。
    • SPACE:您的空間 ID。
    • PARAMETERS_FILE_PATH:包含元件參數的 JSON 檔案。
    • APPLICATION_TEMPLATE:應用程式範本的範本 ID。

    詳情請參閱「gcloud design-center spaces application-templates components update」。

  4. 說明元件連線。

    gcloud design-center spaces application-templates components connections describe CONNECTION \
    --component=COMPONENT \
    --application-template=APPLICATION_TEMPLATE \
    --project=PROJECT \
    --location=LOCATION \
    --space=SPACE
    

    更改下列內容:

    • CONNECTION:連線 ID。
    • COMPONENT:元件 ID。
    • APPLICATION_TEMPLATE:範本 ID。
    • PROJECT:您的管理專案 ID。
    • LOCATION:應用程式範本區域。
    • SPACE:您的空間 ID。

    詳情請參閱 gcloud design-center spaces application-templates components connections describe

  5. 編輯元件連線參數。

    gcloud design-center spaces application-templates components connections update CONNECTION \
    --component=COMPONENT \
    --application-template=APPLICATION_TEMPLATE \
    --project=PROJECT \
    --location=LOCATION \
    --space=SPACE \
    --source-component-parameters='[{"key": SOURCE_KEY, "value": SOURCE_VALUE}]'
    

    更改下列內容:

    • CONNECTION:連線 ID。
    • COMPONENT:元件 ID。
    • APPLICATION_TEMPLATE:範本 ID。
    • PROJECT:您的管理專案 ID。
    • LOCATION:應用程式範本區域。
    • SPACE:您的空間 ID。
    • SOURCE_KEY:新的參數鍵。
    • SOURCE_VALUE:新的參數值。

    詳情請參閱「gcloud design-center spaces application-templates components connections update」。

設定標準應用程式範本

開發人員將複合範本部署為應用程式時,系統會為下列各項建立應用程式:

  • 每組標準應用程式範本。
  • 每個元件群組。

您可以為每個群組提供預設值。例如,您可以加入部署專案、區域和擁有者。開發人員在 App Design Center 部署應用程式時,可以使用預設值,也可以為每個應用程式指定自己的詳細資料。

如要為每個群組提供預設應用程式詳細資料,請按照下列步驟操作:

設計畫布

  1. 在設計畫布中,按一下標準應用程式範本。

    「嵌入式範本」面板隨即開啟。

  2. 在「設定」區域中,輸入應用程式詳細資料。

    詳情請參閱「建立應用程式草稿」。

gcloud CLI

詳情請參閱「設計範本」。

驗證範本

與開發人員分享複合範本前,請先在 App Design Center 部署及驗證範本。這個步驟可協助您在多部電腦上大規模部署前,先驗證功能。

如要驗證範本,請按照下列步驟操作:

  1. 在設計畫布中,按一下「繼續」,然後選取「建立要部署的應用程式」

    「建立應用程式」面板隨即開啟。

  2. 在「複合式應用程式詳細資料」區域中,輸入應用程式詳細資料。

    詳情請參閱「建立應用程式草稿」。

  3. 點選「下一步」

  4. 部署時,系統會為您新增至複合範本的每個構成元素建立應用程式。設定每個應用程式,然後按一下「下一步」

    詳情請參閱「建立應用程式草稿」。

  5. 測試已部署的應用程式,確認是否符合需求。

  6. 為避免產生週期性費用,請刪除測試部署作業。

建立縮放部署作業

如要部署及管理複合範本的多個執行個體,請使用 App Lifecycle Manager。

  1. 在 App Design Center 驗證範本

  2. 在設計畫布中,按一下「繼續」,然後選取「透過 App Lifecycle Manager 大規模部署」

    「App Lifecycle Manager Units」頁面隨即開啟。

  3. 如需部署步驟,請參閱「部署 SaaS 產品」。

分享範本

如要讓開發人員使用範本,請將範本新增至目錄並共用。將範本新增至目錄後,範本就會在共用目錄的工作區中,做為應用程式來源。

如要共用範本,請按照下列步驟操作:

  1. 在設計畫布中,按一下「Add to Catalog」(新增至目錄)

  2. 如要管理共用目錄的工作區,請參閱「管理目錄」。

修改並重新分享範本

隨著您對應用程式的瞭解日漸深入,業務需求也會隨之演變,因此您可能需要更新範本。舉例來說,您可能會決定新增 Memorystore 服務來進行快取,藉此提升後端服務的效能。

修改範本時,系統會建立範本修訂版本。如要將變更套用至現有應用程式,開發人員必須使用修訂版本部署應用程式。

App Design Center 不會自動將範本修訂版本發布至目錄。如要分享最新修訂版本,請再次將範本發布至目錄。

如要建立新修訂版本,請按照下列步驟操作:

  1. 按一下導覽選單中的「範本」

    前往「範本」頁面

  2. 選取要修訂的應用程式範本。畫布隨即開啟。

  3. 修改範本,以符合新規定。舉例來說,新增及設定新元件。

  4. 如要與其他工作區共用最新修訂版本,請再次將範本新增至目錄

刪除範本

如果不再需要範本,可以將其刪除。

設計畫布

  1. 在設計畫布中,按一下 「動作」
  2. 點選「刪除」

gcloud CLI

刪除應用程式範本。

```sh
gcloud design-center spaces application-templates delete APPLICATION_TEMPLATE \
--project=PROJECT \
--location=LOCATION \
--space=SPACE
```

更改下列內容:

  • APPLICATION_TEMPLATE:要刪除的應用程式範本範本 ID。
  • PROJECT:您的管理專案 ID。
  • LOCATION:應用程式範本區域。
  • SPACE:您的空間 ID。

詳情請參閱 gcloud design-center spaces application-templates delete

後續步驟