导入组件

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

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

  • 加快应用开发速度并对其进行管控。
  • 在 App Design Center 中重复使用现有的设计决策。
  • 帮助应用开发者遵守您既定的设计政策。

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

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

准备工作

如需执行本文档中的任务,请让您的管理员为您授予已启用应用的文件夹或管理项目的必要角色,如下表所示:

任务 所需角色
将 Terraform 模块作为自定义组件导入 App Design Center Admin (roles/designcenter.admin),或
App Design Center User (roles/designcenter.user)

如需详细了解角色,请参阅使用 IAM 进行访问权限控制

配置和导入模块

如需连接到 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

从代码库导入

您可以导入基于单个产品的 Terraform 模块来创建 App Design Center 组件。 Google Cloud 如果您在代码库中更改了 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
    
    

    替换以下内容:

    • 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 文件。
      • 如需自动使用位于代码库中的元数据文件,请将 --metadata 标志保留为未指定状态。

    如需了解详情,请参阅 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

后续步骤