如何在cloudformation"Fn :: Sub"中转义"$ {}"

man*_*ana 17 aws-cloudformation

我希望此资源与!Sub(或Fn::Sub)内部函数一起使用

Resource: !Sub 'arn:aws:iam::${AWS::AccountId}:user/${aws:username}'
Run Code Online (Sandbox Code Playgroud)

aws:username是一个不能被替换的pollicy变量.

一种解决方案是使用Fn::Join而是编写更多的样板代码.

更好:你能逃脱吗?${aws:username}这样!Sub可以在这里工作吗?不幸的是,文档没有提到有关转义的任何内容.

jen*_*ter 38

你实际上可以用"$ {!}"来转义"$"字符.

所以你的资源看起来像这样:

Resource: !Sub 'arn:aws:iam::${AWS::AccountId}:user/${!aws:username}'
Run Code Online (Sandbox Code Playgroud)

它在字符串参数部分的文档中提到.

要从字面上书写一个美元符号和花括号($ {}),请在打开的花括号后添加一个感叹号(!),例如$ {!Literal}.AWS CloudFormation将此文本解析为$ {Literal}.

  • 这是一种奇怪的逃避方式 (2认同)