模板概述
AWS CloudFormation 模板定义了您要在堆栈中创建、更新或删除的 AWS 资源。模板由多个部分组成,但唯一必须具备的是 Resources 部分,其中必须至少声明一种资源。
模板文件遵循使用 JavaScript 对象表示法(JSON)或 YAML 标准的特定格式规则。JSON 更为冗长和僵化,而 YAML 的可读性和灵活性更好。有关更多信息,请参阅 模板格式。
模板的存储位置
Amazon S3 存储桶
您可以将 CloudFormation 模板存储在 Amazon S3 存储桶中。创建或更新堆栈时,您可以指定模板的 S3 URL,而不是直接上传模板。
如果您通过 AWS Management Console 或 AWS CLI 直接上传模板,系统将自动为您创建一个 S3 存储桶。有关更多信息,请参阅 通过 CloudFormation 控制台创建堆栈。
Git 存储库
使用 Git sync,您可以将模板存储在 Git 存储库中。创建或更新堆栈时,您可以指定 Git 存储库位置和包含模板的分支,而不是直接上传模板或引用 S3 URL。CloudFormation 会自动监控指定的存储库和分支以查找模板更改。
验证模板
语法验证
您可以使用 validate-template CLI 命令或通过在控制台上指定模板来验证模板的 JSON 或 YAML 语法。控制台会自动执行验证。但这些方法仅会验证模板的语法,而不会验证您为资源指定的属性值。
其他验证工具
要进行更复杂的验证和最佳实践检查,您可以使用其他工具,例如:
-
CloudFormation Linter(cfn-lint)
– 根据资源提供程序架构验证模板。其中包括检查资源属性的有效值以及最佳实践。 -
CloudFormation Rain(rain fmt)
– 按统一的标准格式化 CloudFormation 模板,或者将模板从 JSON 重新格式化为 YAML(或从 YAML 格式化为 JSON)。这会在使用 YAML 时会保留注释,并尽可能将内置函数转换为简短语法。
开始使用模板
要开始创建 CloudFormation 模板,请遵循以下步骤:
-
选择资源 – 确定要包含在堆栈中的 AWS 资源,例如 EC2 实例、VPC、安全组等。
-
编写模板 – 以 JSON 或 YAML 格式编写模板,定义资源及其属性。
-
验证模板 – 使用 验证模板 部分中描述的方法验证模板。
-
创建堆栈 – 使用验证后的模板创建堆栈。
其他 资源
-
AWS 资源和属性类型参考 提供了用于声明不同资源类型的语法。
-
固有功能参考 记载了可用于执行各种任务(例如连接字符串或引用模板中的其他资源)的函数。常用的内置函数包括:
-
资源属性引用 记载了可使用的特殊属性,包括:
-
DependsOn – 此属性用于指定必须在一个资源创建之后才能创建另一个资源。
-
DeletionPolicy – 此属性用于指定 CloudFormation 如何处理资源删除的方式。
-
Metadata – 此属性用于指定资源的结构化数据。
-