设计组合模板

如果您想使用较小的可重复使用的构建块来构建复杂的应用,请创建复合模板。例如,您可以创建一个包含多个已连接的应用模板的复合模板。

您还可以创建复合模板,以对您使用 App Lifecycle Manager 部署的 SaaS 产品的部署单元进行建模和打包。如需了解详情,请参阅模型和软件包部署单元

通过添加和连接标准应用模板和各个组件来设计复合模板。这种模块化方法可让您执行以下操作:

  • 加快开发速度:使用较小的构建块组装复杂的应用。您可以在多个复合模板中重复使用每个标准应用模板。
  • 实现并行开发:使模块化团队能够专注于特定的构建块。例如,数据库团队可以解决数据存储和分析问题,而无需过多依赖应用逻辑团队。
  • 降低漏洞影响:开发者可以更新或修复构建块,而无需重新部署整个应用。
  • 改善安全状况:通过创建不同的服务账号来部署每个智能模块,从而限制访问权限。确保每个团队仅拥有其配置的构建块的权限。

本文档将介绍如何设计、验证和共享复合模板。

准备工作

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

任务 所需的角色
创建、设计和修改组合模板 App Design Center Admin (roles/designcenter.admin) 或 App Design Center User (roles/designcenter.user)
将复合模板发布或共享到目录 Application Design Center Admin (roles/designcenter.admin)

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

如需使用自己的标准应用模板作为构建块,请设置输入和输出变量以建立可配置的变量,并在应用模板之间创建连接。有关详情,请参阅:

创建复合应用模板

如果您想设计和分享复杂的应用,请创建组合模板。您可以在模板设计中添加和关联以下内容:

  • 标准应用模板:从以下现有模板中选择:

  • 组件:从以下 Google Cloud 资源中选择:

指定模板详细信息

模板详细信息有助于您对模板进行分类,并帮助开发者决定是否使用您的模板。

如需输入模板的详细信息,请执行以下操作:

设计画布

  1. 在导航菜单中,点击模板

    前往“模板”

  2. 创建模板列表中,选择复合模板

  3. 系统会自动填充模板 ID 字段。或者,输入模板的唯一标识符。此字段是必填字段。

  4. 模板名称字段中,输入一个人类可读的标识符,以便在 Google Cloud 控制台中显示。

    如果您未提供名称,系统会将模板 ID 复制到此字段中。

  5. 说明字段中,输入应用用途的简要说明。

  6. 点击创建模板。系统会显示设计画布。

gcloud CLI

创建新的复合应用模板。

gcloud design-center spaces application-templates create APPLICATION_TEMPLATE \
--project=PROJECT \
--location=LOCATION \
--space=SPACE \
--display-name=DISPLAY_NAME \
--description=DESCRIPTION \
--composition-type=COMPOSITE

替换以下内容:

  • APPLICATION_TEMPLATE:您要创建的应用模板的模板 ID。
  • PROJECT:您的管理项目 ID。
  • LOCATION:应用模板区域。
  • SPACE:您的空间 ID。
  • DISPLAY_NAME:要在 Google Cloud 控制台中显示的名称。
  • DESCRIPTION:简要说明。

如需了解详情,请参阅 gcloud design-center spaces application-templates create

设计模板

通过向以下起始点添加和连接标准应用模板和组件来设计复合模板:

在您设计模板时,App Design Center 会生成 Terraform 代码来反映设计和配置详细信息。

如需设计模板,请执行以下操作:

设计画布

  1. 在设计画布中,选择设计以查看画布。

  2. 如需开始使用,请执行以下任一操作:

    • 如需从 Google 提供的模板开始,请在画布上的开始区域中点击模板名称。

    • 如需从空白画布开始,请继续执行下一步。

  3. 如需向画布添加标准应用模板,请执行以下操作:

    1. 组件区域中,点击嵌入模板

    2. 如需添加现有模板,请点击以下列表中的模板:

      • 模板:空间目录中或已与空间共享的标准应用模板。
      • Google 模板:由 Google 创建并添加到 Google 目录中的标准应用模板。
    3. 如需将所选模板添加到画布,请点击选择

  4. 如需创建新的标准应用模板,请点击创建新模板。系统会打开创建新模板页面。

    如需了解详情,请参阅设计标准应用模板

  5. 如需向画布添加组件,请在组件区域中点击相应组件。

  6. 如需在模板和组件之间创建通信渠道,请执行以下任一操作:

    • 从一个智能模块上的蓝点拖动到另一个智能模块上的蓝点。

    • 如需向现有组件添加关联组件,请点击 添加,然后选择要添加的组件。

    如需了解连接详情,请参阅每种受支持资源的配置文档。

  7. 如需移除智能模块或连接,请执行以下操作:

    1. 在画布中,点击智能模块或连接。

    2. 配置区域中,点击删除

    3. 在该字段中,输入 delete

    4. 点击删除

gcloud CLI

  1. 确定空间目录中构建块的模板修订版本 URI。

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

    替换以下内容:

    • PROJECT:您的管理项目 ID。
    • LOCATION:应用模板区域。
    • SPACE:您的空间 ID。

    如需了解详情,请参阅 gcloud design-center spaces shared-templates list

  2. 确定要添加到模板中的 Google 目录组成块的模板修订版本 URI。

    gcloud design-center spaces shared-templates list \
    --google-catalog \
    --location=us-central1
    

    如需了解详情,请参阅 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:应用模板区域。
    • 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:应用模板区域。
    • 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=COMPONENT_2
    

    替换以下内容:

    • CONNECTION:要添加到模板的连接的连接 ID。
    • PROJECT:您的管理项目 ID。
    • LOCATION:应用模板区域。
    • SPACE:您的空间 ID。
    • APPLICATION_TEMPLATE:您要添加连接的应用模板的模板 ID。
    • COMPONENT:源标准应用模板或组件 ID。
    • COMPONENT_2:目标标准应用模板或组件 ID。

    如需了解详情,请参阅 gcloud design-center spaces application-templates components connections create

为组件配置默认值

对于添加到模板中的每个组件,您都可以指定默认配置详细信息,例如资源的所属项目和部署位置。当根据此模板创建应用时,App Design Center 会应用这些默认设置。

如果默认配置不符合应用开发者的要求,他们还可以修改连接详细信息。例如,您可以在创建应用时修改环境变量键名、更改连接端口或向服务账号添加其他角色。

在开发者部署应用之前,他们可以查看和修改您在模板中配置的默认值。开发者必须为每个受支持的资源配置所需的详细信息。

如需配置组件和连接,请执行以下操作:

设计画布

  1. 在设计画布中,点击某个组件。

  2. 配置区域中,从项目 ID 列表中选择要部署资源的项目。选择符合以下条件的项目:

  3. 为资源配置其他设置。例如,对于 Cloud SQL,您可以配置以下内容:

    • 区域
    • 备份配置
    • 数据库标志
    • IP 配置

    如需查看每个组件的配置文档链接,请参阅支持的资源

  4. 在设计画布上连接组件时,系统会使用默认配置值来创建连接。如需添加或修改连接详细信息,请执行以下操作。

    1. 在设计画布中,点击两个组件之间的连接。系统会打开连接面板并显示连接参数。

    2. 执行下列其中一项操作:

      • 如需修改现有连接参数,请点击修改

      • 如需添加新的连接参数,请点击添加参数

    3. 更新字段。例如,您可能需要修改以下详细信息:

      • 要与应用要求保持一致的环境变量键名称。
      • 连接端口值。
      • 添加到服务账号的角色。
  5. 点击保存

gcloud CLI

  1. 说明应用模板中的每个组件,以查看组件参数。

    gcloud design-center spaces application-templates components describe COMPONENT \
    --project=PROJECT \
    --location=LOCATION \
    --space=SPACE \
    --application-template=APPLICATION_TEMPLATE
    

    替换以下内容:

    • COMPONENT:要描述的组件的组件 ID。
    • PROJECT:您的管理项目 ID。
    • LOCATION:应用模板区域。
    • SPACE:您的空间 ID。
    • APPLICATION_TEMPLATE:应用模板的模板 ID。

    如需了解详情,请参阅 gcloud design-center spaces application-templates components describe

  2. 对于要修改的每个组件,请在主目录中创建一个包含参数值的 JSON 文件。

    例如,您可以为 Cloud Run 组件创建以下文件:

      [
          {
            "key": "service_name",
            "value": "frontend-service"
          },
          {
            "key": "project_id",
            "value": "DEPLOYMENT_PROJECT"
          }
      ]
    
  3. 更新应用模板中的每个组件,以配置必需的参数。

    gcloud design-center spaces application-templates components update COMPONENT \
    --project=PROJECT \
    --location=LOCATION \
    --space=SPACE \
    --parameters=PARAMETERS_FILE_PATH \
    --application-template=APPLICATION_TEMPLATE
    

    替换以下内容:

    • COMPONENT:要更新的组件的组件 ID。
    • PROJECT:您的管理项目 ID。
    • LOCATION:应用模板区域。
    • SPACE:您的空间 ID。
    • PARAMETERS_FILE_PATH:包含组件参数的 JSON 文件。
    • APPLICATION_TEMPLATE:应用模板的模板 ID。

    如需了解详情,请参阅 gcloud design-center spaces application-templates components update

  4. 描述组件连接。

    gcloud design-center spaces application-templates components connections describe CONNECTION \
    --component=COMPONENT \
    --application-template=APPLICATION_TEMPLATE \
    --project=PROJECT \
    --location=LOCATION \
    --space=SPACE
    

    替换以下内容:

    • CONNECTION:连接 ID。
    • COMPONENT:组件 ID。
    • APPLICATION_TEMPLATE:模板 ID。
    • PROJECT:您的管理项目 ID。
    • LOCATION:应用模板区域。
    • SPACE:您的空间 ID。

    如需了解详情,请参阅 gcloud design-center spaces application-templates components connections describe

  5. 修改组件连接参数。

    gcloud design-center spaces application-templates components connections update CONNECTION \
    --component=COMPONENT \
    --application-template=APPLICATION_TEMPLATE \
    --project=PROJECT \
    --location=LOCATION \
    --space=SPACE \
    --source-component-parameters='[{"key": SOURCE_KEY, "value": SOURCE_VALUE}]'
    

    替换以下内容:

    • CONNECTION:连接 ID。
    • COMPONENT:组件 ID。
    • APPLICATION_TEMPLATE:模板 ID。
    • PROJECT:您的管理项目 ID。
    • LOCATION:应用模板区域。
    • SPACE:您的空间 ID。
    • SOURCE_KEY:新参数键。
    • SOURCE_VALUE:新的参数值。

    如需了解详情,请参阅 gcloud design-center spaces application-templates components connections update

配置标准应用模板

当开发者将您的复合模板部署为应用时,系统会为以下各项创建应用:

  • 每组标准应用模板。
  • 每个组件组。

您可以为每个组提供默认值。例如,您可以添加部署项目、区域和所有者。当开发者在 App Design Center 部署应用时,他们可以使用默认值,也可以为每个应用指定自己的详细信息。

如需为每个群组提供默认应用详细信息,请执行以下操作:

设计画布

  1. 在设计画布中,点击标准应用模板。

    系统会打开嵌入式模板面板。

  2. 配置区域中,输入应用详细信息。

    如需了解详情,请参阅创建申请草稿

gcloud CLI

如需了解详情,请参阅设计模板

验证模板

在与开发者分享您的复合模板之前,请先在 App Design Center 部署并验证您的模板。此步骤有助于您在多台机器上进行大规模部署之前验证功能。

如需验证模板,请执行以下操作:

  1. 在设计画布中,点击继续,然后选择创建要部署的应用

    系统会打开创建应用面板。

  2. 复合应用详情区域中,输入应用详情。

    如需了解详情,请参阅创建申请草稿

  3. 点击下一步

  4. 对于您添加到复合模板中的每个智能模块,系统会在您部署时创建一个应用。配置每个应用,然后点击下一步

    如需了解详情,请参阅创建申请草稿

  5. 测试已部署的应用,确保其符合您的要求。

  6. 为避免重复收费,请删除测试部署。

创建缩放部署

如需部署和管理复合模板的多个实例,请使用 App Lifecycle Manager。

  1. 在 App Design Center 中验证您的模板

  2. 在设计画布中,点击继续,然后选择使用 App Lifecycle Manager 进行大规模部署

    系统随即会打开 App Lifecycle Manager 单元页面。

  3. 如需了解部署步骤,请参阅部署 SaaS 产品

共享模板

如需让开发者可以使用您的模板,您可以将其添加到目录并进行共享。将模板添加到目录后,该模板将作为应用源在共享该目录的空间中提供。

如需共享模板,请执行以下操作:

  1. 在设计画布中,点击添加到目录

  2. 如需管理共享目录的空间,请参阅管理目录

修改并重新分享模板

随着您对应用的了解不断深入,业务需求不断变化,您可能需要更新模板。例如,您可能决定通过添加 Memorystore 服务进行缓存来提升后端服务的性能。

修改模板时,您会创建模板修订版本。如需将更改应用到现有应用,开发者必须使用相应修订版本部署应用。

App Design Center 不会自动将模板修订版本发布到目录。如需分享最新修订版本,请再次将模板发布到目录。

如需创建新修订版本,请执行以下操作:

  1. 在导航菜单中,点击模板

    前往“模板”

  2. 选择要修改的应用模板。系统会打开画布。

  3. 修改模板以满足新要求。例如,添加并配置新组件。

  4. 如需与其他空间共享最新修订版本,请再次将模板添加到目录

删除模板

如果您不再需要某个模板,可以将其删除。

设计画布

  1. 在设计画布中,点击 操作
  2. 点击删除

gcloud CLI

删除应用模板。

```sh
gcloud design-center spaces application-templates delete APPLICATION_TEMPLATE \
--project=PROJECT \
--location=LOCATION \
--space=SPACE
```

替换以下内容:

  • APPLICATION_TEMPLATE:要删除的应用模板的模板 ID。
  • PROJECT:您的管理项目 ID。
  • LOCATION:应用模板区域。
  • SPACE:您的空间 ID。

如需了解详情,请参阅 gcloud design-center spaces application-templates delete

后续步骤