Fn::Join - AWS CloudFormation

Fn::Join

The intrinsic function Fn::Join appends a set of values into a single value, separated by the specified delimiter. If a delimiter is the empty string, the set of values are concatenated with no delimiter.

Declaration

JSON

{ "Fn::Join" : [ "delimiter", [ comma-delimited list of values ] ] }

YAML

Syntax for the full function name:

Fn::Join: [ delimiter, [ comma-delimited list of values ] ]

Syntax for the short form:

!Join [ delimiter, [ comma-delimited list of values ] ]

Parameters

delimiter

The value you want to occur between fragments. The delimiter will occur between fragments only. It won't terminate the final value.

ListOfValues

The list of values you want combined.

Return value

The combined string.

Examples

Join a simple string array

The following example returns: "a:b:c".

JSON

"Fn::Join" : [ ":", [ "a", "b", "c" ] ]

YAML

!Join [ ":", [ a, b, c ] ]

Join using the ref function with parameters

The following example uses Fn::Join to construct a string value. It uses the Ref function with the AWS::Partition parameter and the AWS::AccountId pseudo parameter.

JSON

{ "Fn::Join": [ "", [ "arn:", { "Ref": "AWS::Partition" }, ":s3:::elasticbeanstalk-*-", { "Ref": "AWS::AccountId" } ] ] }

YAML

!Join - '' - - 'arn:' - !Ref AWS::Partition - ':s3:::elasticbeanstalk-*-' - !Ref AWS::AccountId
Note

Also see the Fn::Sub function for similar functionality.

Supported functions

For the Fn::Join delimiter, you can't use any functions. You must specify a string value.

For the Fn::Join list of values, you can use the following functions:

  • Fn::Base64

  • Fn::FindInMap

  • Fn::GetAtt

  • Fn::GetAZs

  • Fn::If

  • Fn::ImportValue

  • Fn::Join

  • Fn::Split

  • Fn::Select

  • Fn::Sub

  • Ref