AWS Cloudformation:如何在 'NewLine' 个字符上拆分字符串

AWS Cloudformation: How to split a string on 'NewLine' character

我在 Cloudformation 中有一组字符串,这是它们在命令行中的显示方式:

arn:aws:elasticloadbalancing:us-east-1:xxx:loadbalancer/app/app0/yyy
arn:aws:elasticloadbalancing:us-east-1:xxx:loadbalancer/app/app4/yyy
arn:aws:elasticloadbalancing:us-east-1:xxx:loadbalancer/app/app1/yyy
arn:aws:elasticloadbalancing:us-east-1:xxx:loadbalancer/app/app2/yyy
arn:aws:elasticloadbalancing:us-east-1:xxx:loadbalancer/app/app3/yyy

我需要在'\n'(换行符)上拆分

字符串由 CF 的 CommandRunner 生成:

  GetElbv2Arns:
    Type: AWSUtility::CloudFormation::CommandRunner
    Properties: 
      Role: InfrastructureManagement
      LogGroup: !Ref LogGroup
      SubnetId: !Ref subnetId1
      Command: 
        !Sub 
          - | 
            aws elbv2 describe-load-balancers \
            --region ${AWS::Region} \
            --query "LoadBalancers[].[LoadBalancerArn]" \
            --output text  \
            > /command-output.txt
          - dummy: ""

事实证明该事件虽然值以“\n”作为新行开始,但在 CF 获取值时它实际上只是“\n”作为文本。这是 CF 的输出窗格中显示的内容:

arn:aws:elasticloadbalancing:us-east-1:xxx:loadbalancer/app/app0/yyy\narn:aws:elasticloadbalancing:us-east-1:xxx:loadbalancer/app/app4/yyy\narn:aws:elasticloadbalancing:us-east-1:xxx:loadbalancer/app/app1/yyy\narn:aws:elasticloadbalancing:us-east-1:xxx:loadbalancer/app/app2/yyy\narn:aws:elasticloadbalancing:us-east-1:xxx:loadbalancer/app/app3/yyy

解析值的方法是转义'\':

Outputs:
  ARNs1:
    Description: "elbv2 Arns-0"
    Value: 
       !Select [0, !Split  [ "\n", !GetAtt GetElbv2Arns.Output] ]