AWS CloudFormation 构件 - AWS CloudFormation

AWS CloudFormation 构件

在 CodePipeline 运行管道时,CodePipeline 对构件执行一些任务。对于 AWS CloudFormation,构件可以包含堆栈模板文件和/或模板配置文件。CodePipeline 使用这些构件处理 AWS CloudFormation 堆栈和更改集。

如果将 Amazon Simple Storage Service(Amazon S3)用作源存储库,您必须将模板和模板配置文件压缩为一个文件,然后再将它们上传到 S3 桶中。对于其他存储库 (如 GitHub 和 AWS CodeCommit),可上传构件而无需进行压缩。有关更多信息,请参阅《AWS CodePipeline 用户指南》中的在 CodePipeline 中创建管道

您可以将所需数目的文件添加到您的存储库。例如,您可能希望包含同一模板的两个不同配置:一个用于测试配置,另一个用于生产配置。

本主题描述每个构件类型。

堆栈模板文件

堆栈模板文件定义 AWS CloudFormation 预置和配置的资源。这些文件与您在使用 AWS CloudFormation 创建或更新堆栈时使用的模板文件相同。您可以使用 YAML 或 JSON 格式的模板。有关模板的更多信息,请参阅模板剖析

模板配置文件

模板配置文件是 JSON 格式的文本文件,可指定模板参数值、堆栈策略和标签。使用这些配置文件可指定参数值或堆栈的堆栈策略。您指定的所有参数值都必须在关联的模板中进行声明。

如果在该文件中包括敏感信息(如密码),请限制对该文件的访问。例如,如果您将构件上传到 S3 存储桶,可使用 S3 存储桶策略或用户策略来限制访问。

要创建配置文件,可使用以下格式:

{ "Parameters" : { "NameOfTemplateParameter" : "ValueOfParameter", ... }, "Tags" : { "TagKey" : "TagValue", ... }, "StackPolicy" : { "Statement" : [ StackPolicyStatement ] } }

以下示例为 TestEC2Key 参数指定 KeyName,并添加一个值为 DepartmentMarketing 标签,以及一个允许所有更新操作(会删除资源的更新操作除外)的堆栈策略。

{ "Parameters" : { "KeyName" : "TestEC2Key" }, "Tags" : { "Department" : "Marketing" }, "StackPolicy" : { "Statement" : [ { "Effect" : "Allow", "NotAction" : "Update:Delete", "Principal": "*", "Resource" : "*" } ] } }

另请参阅

下列相关资源可帮助您处理这些参数。

  • 有关 CodePipeline 中 AWS CloudFormation 操作参数的更多信息,请参阅《AWS CodePipeline 用户指南》中的 AWS CloudFormation 操作配置引用。

  • 有关操作提供方的示例模板值,例如 Owner 字段或 configuration 字段的值,请参阅《AWS CodePipeline 用户指南》中的操作结构参考

  • 要下载 YAML 或 JSON 格式的示例管道堆栈模板,请参阅《AWS CodePipeline 用户指南》中使用 AWS CloudFormation 创建管道下的教程。