导入组件

应用设计中心支持多种 Google Cloud 产品,您可以将这些产品作为组件添加到应用中。如需使用您自己的这些组件版本或添加其他组件,请将 Terraform 模块导入到 App Design Center。

Terraform 模块是适用于 Google Cloud 产品的可重复使用的配置。导入 Terraform 模块有助于您执行以下操作:

  • 加快应用开发速度并提升治理水平。
  • 在 App Design Center 中重复使用您现有的设计决策。
  • 帮助应用开发者遵守您制定的设计政策。

导入 Terraform 模块时,应用设计中心会在您空间的目录中创建相应的组件模板。然后,您就可以在应用模板设计中将该模板用作组件。

如需了解 Google Cloud上的 Terraform,请参阅以下内容:

准备工作

请让您的管理员为您授予已启用应用的文件夹或管理项目的以下角色之一:

  • Application Design Center Admin (roles/designcenter.admin)。
  • Application Design Center User (roles/designcenter.user)。

配置和导入模块

完成以下步骤,连接到 GitHub、创建元数据文件并导入 Terraform 模块。

使用 Developer Connect 连接到代码库

创建与 GitHub 代码库的 Developer Connect 连接,您可以在该代码库中存储 Google Cloud Terraform 模块。您将在导入时使用此连接。

  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 模块,从而创建应用设计中心组件。如果您在代码库中更改了 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

后续步骤