本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建模板同步配置
了解如何使用创建模板同步配置 AWS Proton。
存储库链接包含以下内容:
-
一种 AWS Proton 授予访问您的仓库和订阅其通知的权限的 CodeConnections 连接。
-
一个服务相关角色。在您链接存储库时,将为您创建服务相关角色。
在创建第一个模板同步配置之前,将一个模板捆绑包推送到您的存储库,如以下目录布局中所示。
/templates/ # subdirectory (optional) /templates/my-env-template/ # template name /templates/my-env-template/v1/ # template version /templates/my-env-template/v1/infrastructure/ # template bundle /templates/my-env-template/v1/schema/
在创建第一个模板同步配置后,当您推送在新版本(例如 /my-env-template/v2/
)中添加更新的模板捆绑包的提交时,将会自动创建新的模板版本。
/templates/ # subdirectory (optional) /templates/my-env-template/ # template name /templates/my-env-template/v1/ # template version /templates/my-env-template/v1/infrastructure/ # template bundle /templates/my-env-template/v1/schema/ /templates/my-env-template/v2/ /templates/my-env-template/v2/infrastructure/ /templates/my-env-template/v2/schema/
您可以在一次提交中为一个或多个配置了同步的模板添加新的模板包版本。 AWS Proton 为提交中包含的每个新模板包版本创建一个新的模板版本。
创建模板同步配置后,您仍然可以在控制台中手动创建模板的新版本,也可以 AWS CLI 通过从 S3 存储桶上传模板捆绑包来手动创建模板的新版本。模板同步只能朝一个方向进行:从您的存储库到。 AWS Proton不会 同步手动创建的模板版本。
设置模板同步配置后, AWS Proton 会监听存储库的更改。每次推送更改时,它都会查找与您的模板名称相同的任何目录。然后,它会在该目录中查找任何看起来像主要版本的目录。 AWS Proton 将模板包注册到相应的模板主版本。新版本始终处于 DRAFT
状态。您可以使用控制台或发布新版本 AWS CLI。
例如,假设您配置了一个名为 my-env-template
的模板以从分支 main
上的 my-repo/templates
同步,并具有以下布局。
/code /code/service.go README.md /templates/ /templates/my-env-template/ /templates/my-env-template/v1/ /templates/my-env-template/v1/infrastructure/ /templates/my-env-template/v1/schema/ /templates/my-env-template/v2/ /templates/my-env-template/v2/infrastructure/ /templates/my-env-template/v2/schema/
AWS Proton 将 to 的内容与 /templates/my-env-template/v1/
t my-env-template:1
o 的内容同步/templates/my-env-template/v2/
。my-env-template:2
如果这些主要版本尚不存在,则会创建这些版本。
AWS Proton 找到了与模板名称匹配的第一个目录。您可以通过在创建或编辑模板同步配置subdirectoryPath
时指定来限制目录 AWS Proton 搜索。例如,您可以为 subdirectoryPath
指定 /production-templates/
。
您可以使用控制台或 CLI 创建模板同步配置。
同步服务模板
前面的示例说明了如何同步环境模板。服务模板是类似的。要同步服务模板,您可以将一个名为 .template-registration.yaml
的附加文件添加到模板捆绑包的每个主要版本目录中。此文件包含在提交后为您创建服务模板版本时 AWS Proton 所需的其他详细信息。当您使用 AWS Proton 控制台或 API 显式创建服务模板版本时,您需要提供这些详细信息作为输入,此文件将替换这些输入以进行模板同步。
./templates/ # subdirectory (optional) /templates/my-svc-template/ # service template name /templates/my-svc-template/v1/ # service template version /templates/my-svc-template/v1/.template-registration.yaml # service template version properties /templates/my-svc-template/v1/instance_infrastructure/ # template bundle /templates/my-svc-template/v1/schema/
.template-registration.yaml
文件包含以下详细信息:
-
兼容的环境 [必需] - 基于这些环境模板和主要版本的环境与基于该服务模板版本的服务兼容。
-
支持的组件源 [可选] - 使用这些源的组件与基于该服务模板版本的服务兼容。如果未指定,则无法将组件附加到这些服务。有关组件的更多信息,请参阅AWS Proton 组件。
该文件的 YAML 语法如下所示:
compatible_environments: -
env-templ-name
:major-version
- ... supported_component_sources: - DIRECTLY_DEFINED
指定一个或多个环境模板/主要版本组合。指定 supported_component_sources
是可选的,唯一支持的值为 DIRECTLY_DEFINED
。
例 .template-registration.yaml
在该示例中,服务模板版本与 my-env-template
环境模板的主要版本 1 和 2 兼容。它还与 another-env-template
环境模板的主要版本 1 和 3 兼容。该文件未指定 supported_component_sources
,因此,无法将组件附加到基于该服务模板版本的服务。
compatible_environments: - my-env-template:1 - my-env-template:2 - another-env-template:1 - another-env-template:3
注意
以前, AWS Proton 定义了不同的文件.compatible-envs
,用于指定兼容的环境。 AWS Proton 为了向后兼容,仍然支持该文件及其格式。我们建议不要再使用该文件,因为它无法进行扩展,并且无法支持较新的功能(例如组件)。