匯入元件

應用程式設計中心支援多種 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 存放區。匯入時會使用這個連線。

  1. 建立 Developer Connect 連線。

    如需相關步驟,請參閱「連結至 GitHub」。

  2. 建立 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 模組,請按照下列步驟操作:

  1. 找出要建立元件的目錄。

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

    更改下列內容:

    • PROJECT:管理專案 ID。
    • LOCATION:您的位置 ID。
    • SPACE:您的空間 ID。

    詳情請參閱 gcloud design-center spaces catalogs list

  2. 在空間的私人目錄中建立目錄範本。

      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

  3. 根據存放區中的 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.0refs/heads/main
    • DEVELOPER_CONNECT_REPO_DIR:存放區中的目錄。例如:modules/my-product
    • 如要指定 Terraform 模組中繼資料,請採取下列其中一種做法:
      • 如要使用自己的中繼資料檔案,請將 METADATA 替換為 metadata.yaml 檔案。
      • 如要在存放區中自動產生中繼資料檔案,請指定 --use-repo 旗標。

    詳情請參閱 gcloud design-center spaces catalogs templates revisions create

  4. 與其他工作區共用目錄。

      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。

    詳情請參閱「gcloud design-center spaces catalogs shares create」。

使用匯入的元件建立應用程式範本

使用匯入的元件和 Google 提供的元件,建立應用程式範本。

  1. 建立新的應用程式範本。

      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」。

  2. 找出要新增至範本的元件範本修訂版本 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 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:您的位置 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」。

  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:您的位置 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」。

  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=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

後續步驟