This is the new Amazon CloudFormation Template Reference Guide. Please update your bookmarks and links. For help getting started with CloudFormation, see the Amazon CloudFormation User Guide.
Fn::Split
To split a string into a list of string values so that you can select an element from the
resulting string list, use the Fn::Split intrinsic function. Specify the location
of splits with a delimiter, such as , (a comma). After you split a string, use
the Fn::Select function to pick a specific
element.
For example, if a comma-delimited string of subnet IDs is imported to your stack template,
you can split the string at each comma. From the list of subnet IDs, use the
Fn::Select intrinsic function to specify a subnet ID for a resource.
Declaration
JSON
{ "Fn::Split" : [ "", "delimitersource string" ] }
YAML
Syntax for the full function name:
Fn::Split: [,delimitersource string]
Syntax for the short form:
!Split [,delimitersource string]
Parameters
You must specify both parameters.
- delimiter
-
A string value that determines where the source string is divided.
- source string
-
The string value that you want to split.
Return value
A list of string values.
Examples
The following examples demonstrate the behavior of the Fn::Split
function.
Simple list
The following example splits a string at each vertical bar (|). The
function returns ["a", "b", "c"].
JSON
{ "Fn::Split" : [ "|" , "a|b|c" ] }
YAML
!Split [ "|" , "a|b|c" ]
List with empty string values
If you split a string with consecutive delimiters, the resulting list will include an
empty string. The following example shows how a string with two consecutive delimiters
and an appended delimiter is split. The function returns ["a", "", "c",
""].
JSON
{ "Fn::Split" : [ "|" , "a||c|" ] }
YAML
!Split [ "|" , "a||c|" ]
Split an imported output value
The following example splits an imported output value, and then selects the third
element from the resulting list of subnet IDs, as specified by the
Fn::Select function.
JSON
{ "Fn::Select" : [ "2", { "Fn::Split": [",", {"Fn::ImportValue": "AccountSubnetIDs"}]}] }
YAML
!Select [2, !Split [",", !ImportValue AccountSubnetIDs]]
Supported functions
For the Fn::Split delimiter, you can't use any functions. You must specify
a string value.
For the Fn::Split list of values, you can use the following
functions:
-
Fn::Base64 -
Fn::FindInMap -
Fn::GetAtt -
Fn::GetAZs -
Fn::If -
Fn::ImportValue -
Fn::Join -
Fn::Select -
Fn::Sub -
Ref