AWS CloudFormation
User Guide (API Version 2010-05-15)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

模板剖析

模板是一个 JSON 或 YAML 格式的文本文件,该文件描述您的 AWS 基础设施。下面的示例显示 AWS CloudFormation 模板结构和各个部分。

JSON

下面的示例显示 JSON 格式的模板片段。

{ "AWSTemplateFormatVersion" : "version date", "Description" : "JSON string", "Metadata" : { template metadata }, "Parameters" : { set of parameters }, "Mappings" : { set of mappings }, "Conditions" : { set of conditions }, "Transform" : { set of transforms }, "Resources" : { set of resources }, "Outputs" : { set of outputs } }

YAML

下面的示例显示 YAML 格式的模板片段。

--- AWSTemplateFormatVersion: "version date" Description: String Metadata: template metadata Parameters: set of parameters Mappings: set of mappings Conditions: set of conditions Transform: set of transforms Resources: set of resources Outputs: set of outputs

模板部分

模板包含几个主要部分。Resources 部分是唯一的必需部分。模板中的某些部分可以任何顺序显示。但是,在您构建模板时,使用以下列表的逻辑顺序可能会很有用,因为一个部分中的值可能会引用上一个部分中的值。列表简要概述了每个部分。

Format Version(可选)

指定模板符合的 AWS CloudFormation 模板版本。模板格式版本与 API 或 WSDL 版本不同。模板格式版本可独立于 API 和 WSDL 版本,进行独立更改。

Description(可选)

一个描述模板的文本字符串。此部分必须始终紧随模板格式版本部分之后。

元数据(可选)

提供有关模板的其他信息的对象。

Parameters(可选)

指定可在运行时(创建或更新堆栈时)传入模板的值。您可引用模板的 ResourcesOutputs 部分中的参数。

Mappings(可选)

可用来指定条件参数值的密钥和关键值的映射,与查找表类似。您可通过使用 ResourcesOutputs 部分中的 Fn::FindInMap 内部函数将键与相应的值匹配。

条件(可选)

定义用于控制是否创建某些资源或者是否在堆栈创建或更新过程中为某些资源属性分配值的条件。例如,您可以根据堆栈是用于生产环境还是用于测试环境来按照条件创建资源。

转换 (可选)

对于无服务器应用程序 (也称为“基于 Lambda 的应用程序),指定要使用的 AWS Serverless Application Model (AWS SAM) 的版本。当您指定转换时,可以使用 AWS SAM 语法声明您的模板中的资源。此模型定义您可使用的语法及其处理方式。

您也可以使用 AWS::Include 转换来处理与主 AWS CloudFormation 模板分开存储的模板代码段。您可以将代码段文件存储在 Amazon S3 存储桶中,然后在多个模板中重用这些函数。

Resources(必需)

指定堆栈资源及其属性,如 Amazon Elastic Compute Cloud 实例或 Amazon Simple Storage Service 存储桶。您可引用模板的 ResourcesOutputs 部分中的资源。

Outputs(可选)

描述在您查看堆栈的属性时返回的值。例如,您可声明 S3 存储桶名称的输出,然后调用 aws cloudformation describe-stacks AWS CLI 命令来查看该名称。

本页内容: