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] ]
我在 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] ]