{ "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 } }
模板部分
模板包含几个主要部分。Resources
部分是唯一的必需部分。模板中的某些部分可以任何顺序显示。但是,在您构建模板时,使用以下列表中显示的逻辑顺序可能会很有用,因为一个部分中的值可能会引用上一个部分中的值。
- Format Version(可选)
-
模板符合的 AWS CloudFormation 模板版本。模板格式版本与 API 或 WSDL 版本不同。模板格式版本可独立于 API 和 WSDL 版本,进行独立更改。
- Description (可选)
-
一个描述模板的文本字符串。此部分必须始终紧随模板格式版本部分之后。
- 元数据(可选)
-
提供有关模板的其他信息的对象。
- Parameters(可选)
-
要在运行时 (创建或更新堆栈时) 传递到模板的值。您可引用模板的
Resources
和Outputs
部分中的参数。 - Mappings(可选)
-
可用来指定条件参数值的密钥和关键值的映射,与查找表类似。可以通过使用
Resources
和Outputs
部分中的 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 存储桶。您可引用模板的
Resources
和Outputs
部分中的资源。 - Outputs(可选)
-
描述在您查看堆栈的属性时返回的值。例如,您可以声明 S3 存储桶名称的输出,然后调用
aws cloudformation describe-stacks
AWS CLI 命令来查看该名称。