模板部分
CloudFormation 模板可分为不同的部分,每个部分都专用于保存特定类型的信息。有些部分必须按特定顺序声明,而对于其他部分,顺序则无关紧要。但是,在您构建模板时,使用以下列表中显示的逻辑顺序可能会很有用,因为一个部分中的值可能会引用上一个部分中的值。
重要
创建模板时,不要使用重复的主要部分,例如 Resources
部分。尽管 CloudFormation 可能会接受该模板,但在处理该模板时将会出现未定义的行为,并且可能会错误地预置资源,或者返回无法解释的错误。
- Format Version(可选)
-
模板符合的 CloudFormation 模板版本。
- Description(可选)
-
一个描述模板的文本字符串。此部分必须始终紧随模板格式版本部分之后。
- 元数据(可选)
-
提供有关模板的其他信息的对象。
- Parameters(可选)
-
要在运行时 (创建或更新堆栈时) 传递到模板的值。您可引用模板的
Resources
和Outputs
部分中的参数。 - 规则(可选)
-
验证在堆栈创建或堆栈更新过程中传递给模板的参数或参数组合。
- Mappings(可选)
-
可用来指定条件参数值的密钥和关键值的映射,与查找表类似。可以通过使用
Resources
和Outputs
部分中的 Fn::FindInMap 内部函数将键与相应的值匹配。 - 条件(可选)
-
用于控制是否创建某些资源或者是否在堆栈创建或更新过程中为某些资源属性分配值的条件。例如,您可以根据堆栈是用于生产环境还是用于测试环境来按照条件创建资源。
- 转换 (可选)
-
对于无服务器应用程序(也称为“基于 Lambda 的应用程序”),指定要使用的 Amazon Serverless Application Model(Amazon SAM)
的版本。当您指定转换时,可以使用 Amazon SAM 语法声明您的模板中的资源。此模型定义您可使用的语法及其处理方式。 也可以使用 AWS::Include 转换来处理与主 CloudFormation 模板分开存储的模板代码片段。您可以将代码段文件存储在 Amazon S3 存储桶中,然后在多个模板中重用这些函数。
- Resources(必需)
-
指定堆栈资源及其属性,如 Amazon EC2 实例或 Amazon S3 存储桶。您可引用模板的
Resources
和Outputs
部分中的资源。 - Outputs(可选)
-
描述在您查看堆栈的属性时返回的值。例如,您可以声明 S3 存储桶名称的输出,然后调用 describe-stacks Amazon CLI 命令来查看该名称。