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

Transform

可选的 Transform 部分指定 AWS CloudFormation 用于处理您的模板的一项或多项转换。Transform 部分基于简单的声明性语言 AWS CloudFormation 构建,并带有一个强大的宏系统。

AWS CloudFormation 转换通过将 AWS 基础设施的表达式缩减为代码并启用模板组件的重用来帮助简化模板撰写工作。例如,您可以将模板中的多行资源声明缩减为一行。

AWS CloudFormation 支持 AWS::ServerlessAWS::Include 转换类型:

  • AWS::Serverless 转换指定要使用的 AWS Serverless Application Model (AWS SAM) 的版本。此模型定义您可使用的 AWS SAM 语法以及 AWS CloudFormation 处理转换的方式。当您创建更改集时,AWS CloudFormation 会解析所有 Transform 函数。有关无服务器应用程序和 AWS SAM 的更多信息,请参阅 AWS Lambda Developer Guide 中的部署基于 Lambda 的应用程序

  • AWS::Include 转换用于处理与主 AWS CloudFormation 模板分开存储的模板代码段。您可以在创建更改集使用更改集更新堆栈时将这些代码段插入到您的主模板中。

您可以在一个模板内声明单项转换或多项转换。AWS CloudFormation 将按指定转换的顺序执行转换。

要声明多项转换,请使用列表格式并指定一项或多项 AWS::Include 转换,另外还可以选择 AWS::Serverless 转换。以下示例声明两项 AWS::Include 转换。

JSON

{ "Resources": { "MyBucket": { "Type": "AWS::S3::Bucket", "Properties": { "Fn::Transform": [ { "Name": "AWS::Include", "Parameters": { "Location": "s3://bucket/myBucketName.json" } }, { "Name": "AWS::Include", "Parameters": { "Location": "s3://bucket/myBucketAcl.json" } } ] } } } }

YAML

Resources: MyBucket: Type: 'AWS::S3::Bucket' Properties: 'Fn::Transform': - Name: 'AWS::Include' Parameters: Location: s3://bucket/myBucketName.yaml - Name: 'AWS::Include' Parameters: Location: s3://bucket/myBucketAcl.yaml

有关更多信息和示例转换,请参阅以下主题:

本页内容: