如何在AWS SSM中转义{{与}}符号以保留原生参数值?
如何在AWS SSM中转义{{与}}符号以保留原生参数值?
我之前也碰到过一模一样的问题,刚好能给你靠谱的解决方案!AWS SSM会把{{ ... }}默认识别为动态参数引用的语法,所以直接写原生大括号会触发验证报错。要保留这些符号,你需要用反斜杠进行转义,同时还要结合Terraform的字符串处理规则调整写法:
如果你的参数值是用Terraform的双引号字符串定义的,得把
{{写成\\{{,}}写成\\}}——因为Terraform会把单个反斜杠当成自身的转义符,所以要写两个才能让最终传递给SSM的是单个反斜杠。示例代码:resource "aws_ssm_parameter" "example" { name = "/path/name" type = "String" value = "Something with \\{{ ... \\}}" }如果使用单引号字符串(Terraform中单引号内的转义符不会被解析),只需要写单个反斜杠就可以了:
resource "aws_ssm_parameter" "example" { name = "/path/name" type = "String" value = 'Something with \{{ ... \}}' }
转义完成后,SSM会把\{{和\}}解析成原生的{{和}}存储,不会再触发“参数不能嵌套”的验证错误。另外你用Atlantis的话,只要Terraform代码里的转义逻辑正确,Atlantis执行时会正常把处理后的参数值传递给AWS API,不需要额外配置。
备注:内容来源于stack exchange,提问作者Sebastian
相关产品推荐
相关产品推荐

