模板部分
每个 CloudFormation 模板都由一个或多个部分组成,每个部分都有特定的用途。
每个 CloudFormation 模板都需要有 Resources 部分,这是模板的核心。这一部分用于指定堆栈资源及其属性,如 Amazon EC2 实例或 Amazon S3 存储桶。每个资源都使用唯一的逻辑 ID、类型和特定的配置详细信息进行定义。
Parameters 部分尽管是可选的,但对于提高模板的灵活性十分重要。这一部分让用户能够在创建或更新堆栈时传递运行时的值。这些参数可以在 Resources
和 Outputs
部分中引用,从而无需更改模板本身即可进行自定义。例如,您可以使用参数来指定不同部署的实例类型或环境设置。
Outputs 部分也是可选的,用于定义查看堆栈属性时返回的值。输出提供了可用于操作目的或与其他堆栈集成的实用信息,例如资源标识符或 URL 等。这一部分有助于用户检索和使用与模板所创建资源有关的重要详细信息。
其他可选部分包括 Mappings,其功能类似于查找表,用于管理条件值。使用映射,您可以定义键值对,并将其与 Resources
和 Outputs
部分中的 Fn::FindInMap
内置函数结合使用。这对于需要根据条件(例如 AWS 区域 或环境)调整配置的场景非常实用。
Metadata 和 Rules 部分虽然不太常用,但提供了额外的功能。Metadata
可以包含有关模板的更多信息,而 Rules
会在堆栈创建或更新期间验证参数或参数组合,确保符合特定标准。Conditions 部分根据环境类型等条件来控制是否创建特定的资源或者属性分配值,从而进一步提高灵活性。
最后是 Transform 部分,用于在处理模板期间应用宏。对于无服务器应用程序(也称为 Lambda 应用程序),这一部分会指定要使用的 AWS Serverless Application Model(AWS SAM)AWS::Include
转换来包含与主 CloudFormation 模板分开存储的模板代码片段。
以下主题提供了有关如何使用每个部分的更多信息和示例。