设计组合模板

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

您还可以创建复合模板,以对您使用 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. 区域列表中,选择模板的位置。如果您计划在 App Lifecycle Manager 中创建规模化部署,请选择全球

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

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

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

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

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

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

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:应用模板区域。如果您计划在 App Lifecycle Manager 中创建规模化部署,请使用 global
  • 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

后续步骤