【问题标题】:How to escape "${}" in cloudformations "Fn::Sub"如何在 cloudformation“Fn::Sub”中转义“${}”
【发布时间】:2017-11-11 12:02:38
【问题描述】:

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

Resource: !Sub 'arn:aws:iam::${AWS::AccountId}:user/${aws:username}'

aws:username 是一个不能被替换的pollicy variable

一种解决方案是改用Fn::Join 并编写更多样板代码。

更好:你能逃脱${aws:username} 以便!Sub 可以在这里工作吗? 很遗憾,documentation 没有提及任何关于转义的内容。

【问题讨论】:

    标签: amazon-cloudformation


    【解决方案1】:

    您实际上可以使用${!} 转义$ 字符。

    所以你的资源应该是这样的:

    Resource: !Sub 'arn:aws:iam::${AWS::AccountId}:user/${!aws:username}'
    

    在字符串参数部分的docs中有提到。

    要按字面意思书写美元符号和花括号 (${}),请添加 左大括号后的感叹号 (!),例如 ${!Literal}。 AWS CloudFormation 将此文本解析为 ${Literal}。

    【讨论】:

    • 是的,它在文档中。我现在感觉很傻。
    • 这是一种奇怪的逃避方式
    • @mana 不要觉得自己很傻。有 10 亿个 AWS 文档页面 - 很容易错过。
    猜你喜欢
    • 2018-12-25
    • 2020-07-20
    • 1970-01-01
    • 2020-06-13
    • 1970-01-01
    • 2021-11-11
    • 2019-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多