如何在Terraform本地变量中正确转义单引号?
Terraform中转义单引号的最简解决方案
你需要生成的目标路径为:
/team/a/company/incoming/test/${date('yyyyMMdd')}
针对单引号的转义问题,最简方案是使用单引号包裹整个字符串:在Terraform的单引号字符串规则中,两个连续的单引号会被解析为一个单引号,同时单引号字符串内的$符号不会被Terraform插值,因此无需额外转义$。
对应的本地变量配置如下:
locals { upload_folder = '/team/a/company/incoming/test/${date(''yyyyMMdd'')}' }
验证后,该变量的最终值会完全符合预期:
/team/a/company/incoming/test/${date('yyyyMMdd')}
补充说明
你之前尝试的双引号字符串方案之所以出现问题,是因为Terraform的双引号字符串遵循不同的规则:
- 双引号内无法用反斜杠转义单引号,会触发语法错误
- 双引号内的双单引号会被保留为两个单引号,而非解析为一个单引号
而单引号字符串属于Terraform的逐字字符串,除了用两个单引号表示一个单引号外,不会解析任何转义序列或插值表达式,刚好匹配你的需求。
内容的提问来源于stack exchange,提问作者Nicolas Pepinster
相关产品推荐
相关产品推荐

