使用 CloudFormation 模板 - AWS CloudFormation

使用 CloudFormation 模板

AWS CloudFormation 模板定义了您要在堆栈中创建、更新或删除的 AWS 资源。模板由多个部分组成,但唯一必须具备的是 CloudFormation 模板的 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 模板,请遵循以下步骤:

  1. 选择资源 – 确定要包含在堆栈中的 AWS 资源,例如 EC2 实例、VPC、安全组等。

  2. 编写模板 – 以 JSON 或 YAML 格式编写模板,定义资源及其属性。

  3. 保存模板:使用以下文件扩展名在本地保存模板:.json.yaml.txt

  4. 验证模板 – 使用 验证模板 部分中描述的方法验证模板。

  5. 创建堆栈 – 使用验证后的模板创建堆栈。

计划使用 CloudFormation 模板引用

在编写模板时,可以在 AWS 资源和属性类型参考中找到不同资源类型详细语法的文档。

通常,您的堆栈模板需要内置函数来分配直到运行时才可用的属性值,并需要特殊属性来控制资源的行为。在编写模板时,请参阅以下资源以获取指导:

  • 固有功能参考:一些常用的内置函数包括:

    • Ref – 检索资源的参数值或物理 ID。

    • Sub – 用实际值替换字符串中的占位符。

    • GetAtt – 返回模板中的资源的属性值。

    • Join – 将一组值连接成单个字符串。

  • 资源属性引用:一些常用的特殊属性包括:

    • DependsOn – 此属性用于指定必须在一个资源创建之后才能创建另一个资源。

    • DeletionPolicy – 此属性用于指定 CloudFormation 如何处理资源删除的方式。

    • Metadata – 此属性用于指定资源的结构化数据。