【问题标题】:AWS Cloudformation: How to split a string on 'NewLine' characterAWS Cloudformation:如何在“NewLine”字符上拆分字符串
【发布时间】:2022-01-15 07:14:44
【问题描述】:

我在 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: ""

【问题讨论】:

  • 这些字符串在列表中吗?

标签: amazon-web-services amazon-cloudformation


【解决方案1】:

结果表明,尽管值以 '\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] ]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 2020-09-22
    • 2011-01-08
    • 2010-10-10
    • 1970-01-01
    相关资源
    最近更新 更多