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 格式的模板。有关模板的更多信息,请参阅CloudFormation 模板部分。
模板配置文件
模板配置文件是 JSON 格式的文本文件,可指定模板参数值、堆栈策略和标签。使用这些配置文件可指定参数值或堆栈的堆栈策略。您指定的所有参数值都必须在关联的模板中进行声明。
如果在该文件中包括敏感信息(如密码),请限制对该文件的访问。例如,如果您将构件上传到 S3 存储桶,可使用 S3 存储桶策略或用户策略来限制访问。
要创建配置文件,可使用以下格式:
{ "Parameters" : { "
NameOfTemplateParameter
" : "ValueOfParameter
", ... }, "Tags" : { "TagKey
" : "TagValue
", ... }, "StackPolicy" : { "Statement" : [StackPolicyStatement
] } }
以下示例为 TestEC2Key
参数指定 KeyName
,并添加一个值为 Department
的 Marketing
标签,以及一个允许所有更新操作(会删除资源的更新操作除外)的堆栈策略。
{ "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 创建管道下的教程。