應用程式設計中心支援多種 Google Cloud 產品 ,可做為應用程式的元件。如要使用這些元件的自訂版本或新增其他元件,請將 Terraform 模組匯入應用程式設計中心。
Terraform 模組是 Google Cloud 產品的可重複使用設定。 匯入 Terraform 模組有助於執行下列操作:
- 加快應用程式開發速度並進行控管。
- 在 App Design Center 重複使用現有的設計決策。
- 協助應用程式開發人員遵守您制定的設計政策。
匯入 Terraform 模組時,App Design Center 會在工作區的目錄中建立對應的元件範本。然後,您可以在應用程式範本設計中,將範本當做元件使用。
如要瞭解 Google Cloud上的 Terraform,請參閱下列說明:
事前準備
請管理員在已啟用應用程式的資料夾或管理專案中,授予您下列其中一個角色:
- Application Design Center 管理員 (
roles/designcenter.admin)。 - App Design Center 使用者 (
roles/designcenter.user)。
設定及匯入模組
請完成下列步驟,連線至 GitHub、建立中繼資料檔案,以及匯入 Terraform 模組。
使用 Developer Connect 連結存放區
建立 Developer Connect 連線,連至儲存 Google Cloud Terraform 模組的 GitHub 存放區。匯入時會使用這個連線。
建立 Developer Connect 連線。
如需相關步驟,請參閱「連結至 GitHub」。
建立 Developer Connect 存放區連結。
如需步驟,請參閱「將存放區連結新增至現有連線」。
選用步驟:準備 Terraform 模組中繼資料
匯入 Terraform 模組時,您可以提供自己的中繼資料,也可以讓 App Design Center 為您建立中繼資料檔案。
舉例來說,您可能會為服務帳戶建立下列 metadata.yaml 檔案:
spec:
info:
actuationTool:
flavor: Terraform
version: ">= 1.3"
interfaces: # Optional
variables:
- name: service_account
connections:
- source:
source: github.com/terraform-google/terraform-google-service-accounts
version: ">= 4.4"
spec:
outputExpr: email
requirements:
roles: # Optional after IAM integrations
- level: Project
roles:
- roles/iam.serviceAccountUser
- roles/iap.admin
- roles/run.admin
- roles/iam.serviceAccountAdmin
providerVersions:
- source: hashicorp/google
version: ">= 6, < 7"
- source: hashicorp/google-beta
version: ">= 6, < 7"
ui: # Optional
input:
variables:
ca_root_module:
name: ca_root_module
title: Ca Root Module
service_account:
name: service_account
title: Service Account
從存放區匯入
您可以匯入以單一 Google Cloud 產品為基礎的 Terraform 模組,建立 App Design Center 元件。如果您在存放區中變更 Terraform 模組,請重複這些步驟來匯入變更。
如要匯入 Terraform 模組,請按照下列步驟操作:
找出要建立元件的目錄。
gcloud design-center spaces catalogs list \ --project=PROJECT \ --location=LOCATION \ --space=SPACE更改下列內容:
PROJECT:管理專案 ID。LOCATION:您的位置 ID。SPACE:您的空間 ID。
在空間的私人目錄中建立目錄範本。
gcloud design-center spaces catalogs templates create COMPONENT_TEMPLATE \ --project=PROJECT \ --catalog=CATALOG \ --location=LOCATION \ --space=SPACE \ --template-category=component-template更改下列內容:
COMPONENT_TEMPLATE:您要建立的元件範本範本 ID。PROJECT:管理專案 ID。CATALOG:目錄 ID。LOCATION:您的位置 ID。SPACE:您的空間 ID。
詳情請參閱 gcloud design-center spaces catalogs templates create。
根據存放區中的 Terraform 模組,建立目錄範本修訂版本。
gcloud design-center spaces catalogs templates revisions create REVISION \ --project=PROJECT \ --catalog=CATALOG \ --location=LOCATION \ --space=SPACE \ --template=COMPONENT_TEMPLATE \ --developer-connect-repo=DEVELOPER_CONNECT_REPO \ --developer-connect-repo-ref=DEVELOPER_CONNECT_REPO_REF \ --developer-connect-repo-dir=DEVELOPER_CONNECT_REPO_DIR \ --metadata=METADATA | --use-repo更改下列內容:
REVISION:要建立的修訂版本 ID。PROJECT:管理專案 ID。CATALOG:目錄 ID。LOCATION:您的位置 ID。SPACE:您的空間 ID。COMPONENT_TEMPLATE:您在上一個步驟中建立的範本 ID。DEVELOPER_CONNECT_REPO:做為來源的 Developer Connect 存放區。例如:projects/my-project/locations/us-central1/connections/my-connection/gitRepositoryLinks/my-repo。DEVELOPER_CONNECT_REPO_REF:存放區中的 Git 分支或標記。例如:refs/tags/v1.0.0或refs/heads/main。DEVELOPER_CONNECT_REPO_DIR:存放區中的目錄。例如:modules/my-product。- 如要指定 Terraform 模組中繼資料,請採取下列其中一種做法:
- 如要使用自己的中繼資料檔案,請將
METADATA替換為metadata.yaml檔案。 - 如要在存放區中自動產生中繼資料檔案,請指定
--use-repo旗標。
- 如要使用自己的中繼資料檔案,請將
詳情請參閱 gcloud design-center spaces catalogs templates revisions create。
與其他工作區共用目錄。
gcloud design-center spaces catalogs shares create SHARE \ --project=PROJECT \ --catalog=CATALOG \ --location=LOCATION \ --space=SPACE \ --destination-space=DESTINATION_SPACE更改下列內容:
SHARE:要建立的共用 ID。PROJECT:管理專案 ID。CATALOG:目錄 ID。LOCATION:您的位置 ID。SPACE:您的空間 ID。DESTINATION_SPACE:目的地空間 ID。
使用匯入的元件建立應用程式範本
使用匯入的元件和 Google 提供的元件,建立應用程式範本。
建立新的應用程式範本。
gcloud design-center spaces application-templates create APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE更改下列內容:
APPLICATION_TEMPLATE:要建立的應用程式範本範本 ID。PROJECT:管理專案 ID。LOCATION:您的位置 ID。SPACE:您的空間 ID。
詳情請參閱「gcloud design-center spaces application-templates create」。
找出要新增至範本的元件範本修訂版本 URI。
gcloud design-center spaces shared-templates list \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --uri更改下列內容:
PROJECT:管理專案 ID。LOCATION:您的位置 ID。SPACE:您的空間 ID。
在應用程式範本中新增元件。
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:您的位置 ID。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」。
在範本中新增第二個元件。
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:您的位置 ID。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」。
在兩個元件之間建立連線。
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=SHARED_TEMPLATE_URI_2更改下列內容:
CONNECTION:要新增至範本的連線 ID。PROJECT:管理專案 ID。LOCATION:您的位置 ID。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 connections create。