使用 CloudFormation 模板
Amazon CloudFormation 模板定义了您要在堆栈中创建、更新或删除的 Amazon 资源。模板由多个部分组成,但唯一必须具备的是 Resources 部分,其中必须至少声明一种资源。
您可以使用以下方法创建模板:
-
Amazon 基础设施编辑器 – 用于设计模板的可视化界面。
-
文本编辑器 – 直接使用 JSON 或 YAML 语法编写模板。
-
IaC 生成器 – 利用您账户中已预置但当前不由 CloudFormation 管理的资源生成模板。IaC 生成器适用于云管控 API 在您所在区域支持的多种资源类型。
本部分提供有关如何使用 CloudFormation 模板的不同部分以及如何开始创建堆栈模板的全面指南。其涵盖以下主题:
主题
模板的存储位置
Amazon S3 存储桶
您可以将 CloudFormation 模板存储在 Amazon S3 存储桶中。创建或更新堆栈时,您可以指定模板的 S3 URL,而不是直接上传模板。
如果您通过 Amazon Web Services 管理控制台 或 Amazon CLI 直接上传模板,系统将自动为您创建一个 S3 存储桶。有关更多信息,请参阅 通过 CloudFormation 控制台创建堆栈。
Git 存储库
使用 Git sync,您可以将模板存储在 Git 存储库中。创建或更新堆栈时,您可以指定 Git 存储库位置和包含模板的分支,而不是直接上传模板或引用 S3 URL。CloudFormation 会自动监控指定的存储库和分支以查找模板更改。有关更多信息,请参阅 使用 Git 同步从存储库源代码创建堆栈。
验证模板
在部署之前验证模板,以便尽早发现并修复问题。CloudFormation 服务和本节中的工具检查模板的不同部分。您可以将它们配合使用。
您可以使用 validate-template CLI 命令或在 Amazon Web Services 管理控制台 中指定模板来检查模板是否使用了有效的 JSON 或 YAML。控制台会自动执行此检查。这些服务端检查不会运行由以下工具提供的其他属性、安全性或最佳实践检查:
-
CloudFormation 语言服务器:在编辑器中编写模板时,获取建议、文档和验证反馈。
-
CloudFormation Linter:通过命令行、编辑器或自动构建检查资源属性、允许的值和常见问题。
-
CloudFormation 验证:通过命令行或库运行本地离线检查,并添加自定义 Rego
或 Guard 规则。Amazon CDK 会在合成模板后自动使用此验证器。 -
CloudFormation Guard:根据贵组织的安全性、合规性和治理要求编写策略规则并检查模板。
与人工智能编程代理配合使用
AI 编程代理可帮助您使用 GitHub 上的 Agent Toolkit for Amazonaws-cloudformation 技能来创作、验证 CloudFormation 模板并排查其问题。有关 安装说明,请参阅代理设置指南。
了解验证范围
本地工具会检查您提供的模板和规则。它们无法保证在 Amazon Web Services 账户 和 Amazon Web Services 区域 中使用当前资源、权限和配额部署一定会成功。部署之前,请查看更改集并修复 CloudFormation 服务报告的所有问题。
开始使用模板
要开始创建 CloudFormation 模板,请遵循以下步骤:
-
选择资源 – 确定要包含在堆栈中的 Amazon 资源,例如 EC2 实例、VPC、安全组等。
-
编写模板 – 以 JSON 或 YAML 格式编写模板,定义资源及其属性。
-
保存模板:使用以下文件扩展名在本地保存模板:
.json、.yaml或.txt。 -
验证模板 – 使用 验证模板 部分中描述的方法验证模板。
-
创建堆栈 – 使用验证后的模板创建堆栈。
计划使用 CloudFormation 模板引用
在编写模板时,可以在 Amazon 资源和属性类型参考中找到不同资源类型详细语法的文档。
通常,您的堆栈模板需要内置函数来分配直到运行时才可用的属性值,并需要特殊属性来控制资源的行为。在编写模板时,请参阅以下资源以获取指导:
示例模板
CloudFormation 提供了您可以开始使用的开源堆栈模板。有关更多信息,请参阅 GitHub 上的 Amazon CloudFormation 示例模板
请记住,这些模板并不意味着已做好生产的准备。您应该花些时间了解模板的工作方式,根据需要进行调整,并确保它们符合自己公司的合规标准。
该存储库中的每个模板都通过了 CloudFormation Linter