Transform - Amazon CloudFormation
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China.


The optional Transform section specifies one or more macros that Amazon CloudFormation uses to process your template. The Transform section builds on the simple, declarative language of Amazon CloudFormation with a powerful macro system.

You can declare one or more macros within a template. Amazon CloudFormation executes macros in the order that they're specified. When you create a change set, Amazon CloudFormation generates a change set that includes the processed template content. You can then review the changes and execute the change set. For more information, see Using Amazon CloudFormation macros to perform custom processing on templates.

Amazon CloudFormation also supports transforms, which are macros hosted by Amazon CloudFormation. Amazon CloudFormation treats these transforms the same as any macros you create in terms of execution order and scope. For detailed information regarding specific transforms, see Transform reference.

To declare multiple macros, use a list format and specify one or more macros.

For example, in the template sample below, Amazon CloudFormation evaluates MyMacro and then AWS::Serverless, both of which can process the contents of the entire template because of their inclusion in the Transform section.

// Start of processable content for MyMacro and AWS::Serverless Transform: - MyMacro - 'AWS::Serverless' Resources: WaitCondition: Type: 'AWS::CloudFormation::WaitCondition' MyBucket: Type: 'AWS::S3::Bucket' Properties: BucketName: MyBucket Tags: [{"key":"value"}] CorsConfiguration:[] MyEc2Instance: Type: 'AWS::EC2::Instance' Properties: ImageID: "ami-123" // End of processable content for MyMacro and AWS::Serverless