【问题标题】:How do I escape the $ symbol in cloudformation如何在 cloudformation 中转义 $ 符号
【发布时间】:2019-01-17 10:28:52
【问题描述】:

我正在查看类似的问题,但这并不能完全回答我的问题

How to escape "${}" in cloudformations "Fn::Sub"

我有一个小节

AWS::CloudFormation::Init:
    commands:
        somecommandwithargs -a $aws/something/somethingelse

这里 cloudformation init 将 $aws 评估为一个空白字符串,因为它将它解释为一个变量。

我想将它完全保留为 $aws/something/somethingelse

我在 CFN 文档中找不到说明如何在这种情况下转义 $ 符号的文档。

【问题讨论】:

    标签: amazon-cloudformation


    【解决方案1】:

    我很确定它没有被 CloudFormation 评估,因为它只处理 !Sub 函数。美元符号在 YAML 中没什么特别的,因为它没有处理逻辑,它只是一个数据结构。

    它可能已正确保存为启动配置,但随后在运行时评估为空白字符串。

    【讨论】:

    • “在运行时计算为空白字符串”——该语句为真。但它甚至在 Fn::Sub 的上下文之外这样做的事实是我不太明白的。
    • 但是你能检查一下实际的命令吗?我有 99% 的把握,CloudFormation 不会评估它并直接传递字符串。我认为命令很好,只是在命令执行时(这就是我所说的run-tine,而不是CFN运行时),shell变量不存在。
    • 同样,它不是一个 shell 变量。我真的想按原样放入 $aws。
    • 这仍然不是 CloudFormation 问题 - 这实际上是执行的 shell 命令。 CloudFormation 不对其进行评估。也许尝试使用单引号('),它们不会被 Bash 评估。
    猜你喜欢
    • 2017-11-11
    • 2013-09-15
    • 2016-09-10
    • 2013-11-22
    • 1970-01-01
    • 1970-01-01
    • 2012-01-18
    • 2011-05-01
    • 1970-01-01
    相关资源
    最近更新 更多