Neil H Watson
Neil H Watson

Reputation: 1070

Output a list in cloud formation

I have a parameter:

  ClusterSubnets:
    Description: Subnets where cluster will reside.
                Typically private.  Use mutiples, each in a different AZ for HA.
    ConstraintDescription: comma separated list of valid Subnet IDs
    Type: List<AWS::EC2::Subnet::Id>

I'm trying to output this:

  ClusterSubnets:
    Description: Subnets used by cluster
    Value: !Ref ClusterSubnets
    Export:
      Name: !Sub "${AWS::StackName}-ClusterSubnets"

But I get this error: Template format error: The Value field of every Outputs member must evaluate to a String.

How can I export a list?

Upvotes: 13

Views: 10503

Answers (1)

Miles
Miles

Reputation: 1732

You need to join the elements of the list into a string. Try something like this:

ClusterSubnets:
    Description: Subnets used by cluster
    Value: !Join
        - ','
        - !Ref ClusterSubnets
    Export:
        Name: !Sub "${AWS::StackName}-ClusterSubnets"

Here is the relevant AWS documentation.

Upvotes: 22

Related Questions