Application Design Center 可讓您將現有的多產品Google Cloud Terraform 設定,直接匯入應用程式範本,不必先將程式碼重組為個別元件模組,或發布至目錄。
單一產品 Terraform 模組會以目錄元件的形式匯入,並在設計畫布上連結。多產品 Terraform 設定則不同,它是根模組,可跨多個 Google Cloud 產品佈建資源。如要將單一產品模組匯入為元件,請參閱「匯入元件」。
將現有的 Terraform 設定匯入 App Design Center,即可執行下列操作:
- 將現有的 Terraform 設定納入 App Design Center 應用程式生命週期管理,並在 App Hub 自動註冊已部署的資源。
- 建立不可變更的應用程式範本修訂版本,為 Terraform 設定建立版本。
- 使用 Infrastructure Manager 預覽及部署應用程式,或將 Terraform 檔案匯出至 Cloud Storage。
建立範本修訂版本後,您可以透過下列任一方式使用:
- 直接部署:根據修訂版本建立應用程式、預覽應用程式以取得評估報告,然後部署應用程式。您不需要先將範本發布至目錄、共用範本,或尋找共用範本。
- 透過目錄重複使用:將修訂版本發布至目錄,新增為複合應用程式範本的元件,然後匯出複合範本的 Terraform。詳情請參閱「將應用程式範本發布至目錄」。
事前準備
如要執行本文件中的工作,請要求管理員在啟用應用程式管理功能的資料夾或管理專案中,授予您必要角色,如下表所示:
| 工作 | 必要的角色 |
|---|---|
| 建立、匯入、匯出應用程式範本和範本修訂版本,以及建立快照 | App Design Center 管理員 (roles/designcenter.admin),或App Design Center 使用者 ( roles/designcenter.user) |
| 建立、部署及匯出應用程式 | 應用程式管理員 (roles/designcenter.applicationAdmin) 或應用程式編輯者 ( roles/designcenter.applicationEditor) |
如要進一步瞭解角色,請參閱「使用 Identity and Access Management 控管存取權」。
將 Terraform 根模組 (.tf 檔案和任何支援檔案,例如 .json 檔案) 儲存在下列其中一個來源:
- Cloud Storage bucket。
- Developer Connect 存放區。
- 公開 Git 存放區。
- 含有檔案的本機 YAML 或 JSON 檔案。
將 Terraform 匯入應用程式範本
請使用 Google Cloud CLI 完成下列步驟,建立應用程式範本、匯入現有的 Terraform 設定,以及建立不可變更的範本修訂版本。
在空間中建立應用程式範本。
gcloud design-center spaces application-templates create APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --display-name=DISPLAY_NAME更改下列內容:
APPLICATION_TEMPLATE:要建立的應用程式範本 ID。PROJECT:您的管理專案 ID。LOCATION:您的位置 ID。SPACE:您的聊天室 ID。DISPLAY_NAME:應用程式範本的顯示名稱。
詳情請參閱「gcloud design-center spaces application-templates create」。
從下列其中一個來源,將 Terraform 設定匯入應用程式範本:
如要從 Cloud Storage bucket 匯入,請執行下列指令:
gcloud design-center spaces application-templates ingest-iac APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --gcs-uri=GCS_URI \ --raw-terraform-import-enabled如要從 Developer Connect 存放區匯入,請執行下列指令:
gcloud design-center spaces application-templates ingest-iac APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --developer-connect-repo-uri=DEVELOPER_CONNECT_REPO_URI \ --developer-connect-branch=DEVELOPER_CONNECT_BRANCH \ --developer-connect-dir=DEVELOPER_CONNECT_DIR \ --raw-terraform-import-enabled如要從公開 Git 存放區匯入,請執行下列指令:
gcloud design-center spaces application-templates ingest-iac APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --git-source-repo=GIT_SOURCE_REPO \ --git-source-ref-tag=GIT_SOURCE_REF_TAG \ --git-source-dir=GIT_SOURCE_DIR \ --raw-terraform-import-enabled如要從含有
IaCModule酬載的本機 YAML 或 JSON 檔案匯入,請執行下列指令:gcloud design-center spaces application-templates ingest-iac APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --iac-module-from-file=IAC_MODULE_FILE \ --raw-terraform-import-enabled
更改下列內容:
APPLICATION_TEMPLATE:應用程式範本 ID。PROJECT:您的管理專案 ID。LOCATION:您的位置 ID。SPACE:您的聊天室 ID。GCS_URI:包含 Terraform 檔案的 Cloud Storage URI,格式為gs://BUCKET_NAME/FOLDER_PATH。DEVELOPER_CONNECT_REPO_URI:Developer Connect 存放區連結 URI,格式為projects/PROJECT/locations/LOCATION/connections/CONNECTION/gitRepositoryLinks/REPO_LINK。DEVELOPER_CONNECT_BRANCH:Developer Connect 存放區中的分支版本名稱。或者,您也可以指定--developer-connect-ref-tag或--developer-connect-commit-sha。DEVELOPER_CONNECT_DIR:Developer Connect 存放區中的目錄路徑。GIT_SOURCE_REPO:公開 Git 存放區的 HTTPS 網址。GIT_SOURCE_REF_TAG:公開 Git 存放區中的 Git 參照或標記。GIT_SOURCE_DIR:公開 Git 存放區中的目錄路徑。IAC_MODULE_FILE:本機 YAML 或 JSON 檔案的路徑,其中包含 Terraform 檔案。
建立應用程式範本的快照,產生不可變更的應用程式範本修訂版本,以便建立及部署應用程式。
gcloud design-center spaces application-templates snapshot APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE更改下列內容:
APPLICATION_TEMPLATE:應用程式範本 ID。PROJECT:您的管理專案 ID。LOCATION:您的位置 ID。SPACE:您的聊天室 ID。
輸出內容包含建立的應用程式範本修訂版本 URI,格式為
projects/PROJECT/locations/LOCATION/spaces/SPACE/applicationTemplates/APPLICATION_TEMPLATE/revisions/REVISION。
使用範本建立及部署應用程式
建立匯入 Terraform 範本的快照修訂版本後,您可以建立應用程式草稿、提供輸入變數值,以及部署應用程式。
根據應用程式範本修訂版本建立應用程式草稿。
gcloud design-center spaces applications create APPLICATION \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --source-application-template-revision=SOURCE_APPLICATION_TEMPLATE_REVISION \ --deployment-project=DEPLOYMENT_PROJECT \ --deployment-region=DEPLOYMENT_REGION \ --app-parameters=APP_PARAMETERS \ --scope-type=SCOPE_TYPE更改下列內容:
APPLICATION:要建立的應用程式 ID。PROJECT:您的管理專案 ID。LOCATION:您的位置 ID。SPACE:您的聊天室 ID。SOURCE_APPLICATION_TEMPLATE_REVISION:snapshot指令傳回的應用程式範本修訂版本 URI。DEPLOYMENT_PROJECT:部署 Terraform 資源的目標專案 ID。DEPLOYMENT_REGION:部署 Terraform 資源的目標區域。APP_PARAMETERS:選用。Terraform 根模組的輸入變數鍵/值組合 (例如key=KEY,value=VALUE),或含有應用程式參數的 YAML 或 JSON 檔案路徑。SCOPE_TYPE:應用程式的範圍,可以是regional或global。
如要進一步瞭解如何管理應用程式,請參閱「管理應用程式」。
預覽及部署應用程式。如需逐步說明,請參閱「部署應用程式」。
將 Terraform 程式碼匯出至 Cloud Storage
您可以將 Terraform 檔案從應用程式範本、應用程式範本修訂版本或應用程式匯出至 Cloud Storage bucket。如果您想使用自己的 CI/CD 工具執行 Terraform,或在版本管控中保留副本,請匯出。
如要從應用程式範本草稿匯出 Terraform 檔案,請執行下列指令:
gcloud design-center spaces application-templates export APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --artifact-location-gcs-uri=ARTIFACT_LOCATION_GCS_URI如要從應用程式範本修訂版本匯出 Terraform 檔案,請執行下列指令:
gcloud design-center spaces application-templates revisions export REVISION \ --application-template=APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --artifact-location-gcs-uri=ARTIFACT_LOCATION_GCS_URI如要從應用程式匯出 Terraform 檔案 (包括填入已設定應用程式參數的
zz_adc_inputs.auto.tfvars.json),請執行下列指令:gcloud design-center spaces applications export APPLICATION \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --artifact-location-gcs-uri=ARTIFACT_LOCATION_GCS_URI
更改下列內容:
APPLICATION_TEMPLATE:應用程式範本 ID。REVISION:應用程式範本修訂版本 ID。APPLICATION:應用程式 ID。PROJECT:您的管理專案 ID。LOCATION:您的位置 ID。SPACE:您的聊天室 ID。ARTIFACT_LOCATION_GCS_URI:目的地 Cloud Storage URI,格式為gs://BUCKET_NAME/EXPORT_FOLDER。