Fn::Transform - AWS CloudFormation

Fn::Transform

The intrinsic function Fn::Transform specifies a macro to perform custom processing on part of a stack template. Macros enable you to perform custom processing on templates, from simple actions like find-and-replace operations to extensive transformations of entire templates. For more information, see Using AWS CloudFormation macros to perform custom processing on templates.

You can also use Fn::Transform to call the AWS::Include transform transform, which is a macro hosted by AWS CloudFormation.

Declaration

JSON

{ "Fn::Transform" : { "Name" : macro name, "Parameters" : {key : value, ... } } }

YAML

Syntax for the full function name:

Fn::Transform: Name : macro name Parameters : Key : value

Syntax for the short form:

!Transform { "Name" : macro name, "Parameters" : {key : value, ... } }

Parameters

Name

The name of the macro you want to perform the processing.

Parameters

The list parameters, specified as key-value pairs, to pass to the macro.

Return value

The processed template snippet to be included in the processed stack template.

Examples

The following example calls the AWS::Include transform, specifying that the location to retrieve a template snippet from is passed in the InputValue parameter.

JSON

{ "Fn::Transform" : { "Name" : "AWS::Include", "Parameters" : { "Location" : { "Ref" : "InputValue" } } } }

YAML

'Fn::Transform': Name: 'AWS::Include' Parameters: {Location: {Ref: InputValue}}

The following example calls the AWS::Include transform, specifying that the location to retrieve a template snippet from is located in the RegionMap mapping, under the key us-east-1 and nested key s3Location.

JSON

{ "Fn::Transform" : { "Name" : "AWS::Include", "Parameters" : { "Location" : {"Fn::FindInMap" : ["RegionMap", "us-east-1", "s3Location"] } } } }

YAML

'Fn::Transform': Name: 'AWS::Include' Parameters: {Location: {'Fn::FindInMap': [RegionMap, us-east-1, s3Location]}}

Supported functions

None. AWS CloudFormation passes any intrinsic function calls included in Fn::Transform to the specified macro as literal strings. For more information, see AWS CloudFormation macro function interface.