--- AWSTemplateFormatVersion: "2010-09-09" Description: > Test Sub Functions Parameters: CidrBlock: Type: CommaDelimitedList Resources: myInstance: Type: AWS::EC2::Instance Metadata: AWS::CloudFormation::Init: config: files: /etc/aws-signing-proxy.yml: content: !Sub | listen-address: 127.0.0.1 port: 9200 target: https://${mySubStack.Outputs.DomainEndpoint} region: ${AWS::BadRegion} failover-region: ${AWS AnotherRegion} literal: ${!Literal} loadbalancer: ${myInstance3.PublicDnsName1} badresource: ${myInstance5.PublicDnsName} Properties: ImageId: ami-asdfef UserData: Fn::Base64: Fn::Sub: !Ref myInstance2 myInstance2: Type: AWS::EC2::Instance Properties: ImageId: ami-123456 UserData: Fn::Base64: Fn::Sub: - yum install ${package}" - package: !Split [ ',', 'test, test1' ] myInstance3: Type: AWS::EC2::Instance Properties: ImageId: ami-123456 UserData: Fn::Base64: Fn::Sub: - yum install ${package}; echo ${AWS::Region}; echo ${!Literal}" - mypackage: httpd myVPc: Type: AWS::EC2::VPC Properties: CidrBlock: !Sub "${CidrBlock}" myVPc2: Type: AWS::EC2::VPC Properties: CidrBlock: Fn::Sub: - "${myCidr}${number}" - myCidr: !Ref CidrBlock number: - bad LaunchConfiguration: Type: AWS::AutoScaling::LaunchConfiguration Properties: ImageId: ami-123456 InstanceType: t2.micro UserData: 'Fn::Base64': 'Fn::Sub': 'Fn::Transform': # Doesn't support an object of two items Name: DynamicUserData 'Fn::GetAtt': myVPc2.CidrBlock LaunchConfiguration2: Type: AWS::AutoScaling::LaunchConfiguration Properties: ImageId: ami-123456 InstanceType: t2.micro UserData: 'Fn::Base64': 'Fn::Sub': 'Fn::GetAtt': myVPc.CidrBlock Outputs: myOutput: Value: !Sub "${myInstance3.PrivateDnsName1}" list: Value: !Sub "${myVPc.CidrBlockAssociations}" list2: Value: Fn::Sub: - "${myCidr}" - myCidr: !GetAtt myVPc.CidrBlockAssociations