使用 CloudFormation 模板
AWS CloudFormation 模板定义了您要在堆栈中创建、更新或删除的 AWS 资源。模板由多个部分组成,但唯一必须具备的是 Resources 部分,其中必须至少声明一种资源。
您可以使用以下方法创建模板:
-
AWS 基础设施编辑器 – 用于设计模板的可视化界面。
-
AWS CloudFormation Designer – 用于设计模板的旧版可视化界面。
-
文本编辑器 – 直接使用 JSON 或 YAML 语法编写模板。
-
IaC 生成器 – 利用您账户中已预置但当前不由 CloudFormation 管理的资源生成模板。IaC 生成器适用于云管控 API 在您所在区域支持的多种资源类型。
本部分提供有关如何使用 CloudFormation 模板的不同部分以及如何开始创建堆栈模板的全面指南。其涵盖以下主题:
主题
模板的存储位置
Amazon S3 存储桶
您可以将 CloudFormation 模板存储在 Amazon S3 存储桶中。创建或更新堆栈时,您可以指定模板的 S3 URL,而不是直接上传模板。
如果您通过 AWS Management Console 或 AWS CLI 直接上传模板,系统将自动为您创建一个 S3 存储桶。有关更多信息,请参阅 通过 CloudFormation 控制台创建堆栈。
Git 存储库
使用 Git sync,您可以将模板存储在 Git 存储库中。创建或更新堆栈时,您可以指定 Git 存储库位置和包含模板的分支,而不是直接上传模板或引用 S3 URL。CloudFormation 会自动监控指定的存储库和分支以查找模板更改。有关更多信息,请参阅 使用 Git 同步从存储库源代码创建堆栈。
验证模板
语法验证
您可以使用 validate-template CLI 命令或通过在控制台上指定模板来验证模板的 JSON 或 YAML 语法。控制台会自动执行验证。有关更多信息,请参阅 通过 CloudFormation 控制台创建堆栈。
但这些方法仅会验证模板的语法,而不会验证您为资源指定的属性值。
其他验证工具
要进行更复杂的验证和最佳实践检查,您可以使用其他工具,例如:
-
CloudFormation Linter(cfn-lint)
– 根据资源提供程序架构验证模板。其中包括检查资源属性的有效值以及最佳实践。 -
CloudFormation Rain(rain fmt)
– 按统一的标准格式化 CloudFormation 模板,或者将模板从 JSON 重新格式化为 YAML(或从 YAML 格式化为 JSON)。这会在使用 YAML 时会保留注释,并尽可能将内置函数转换为简短语法。
开始使用模板
要开始创建 CloudFormation 模板,请遵循以下步骤:
-
选择资源 – 确定要包含在堆栈中的 AWS 资源,例如 EC2 实例、VPC、安全组等。
-
编写模板 – 以 JSON 或 YAML 格式编写模板,定义资源及其属性。
-
保存模板:使用以下文件扩展名在本地保存模板:
.json
、.yaml
或.txt
。 -
验证模板 – 使用 验证模板 部分中描述的方法验证模板。
-
创建堆栈 – 使用验证后的模板创建堆栈。
计划使用 CloudFormation 模板引用
在编写模板时,可以在 AWS 资源和属性类型参考中找到不同资源类型详细语法的文档。
通常,您的堆栈模板需要内置函数来分配直到运行时才可用的属性值,并需要特殊属性来控制资源的行为。在编写模板时,请参阅以下资源以获取指导: