Terraform中构建XML字符串时如何编码含保留字符的变量?
在Terraform中处理XML变量的保留字符编码问题
直接用Terraform内置的xmlencode()函数对包含XML保留字符的变量转义就行,它会自动把&、<、>、"、'这些XML特殊字符转换成对应的实体引用(比如&、<),保证生成的XML格式合法。
修改后的代码示例:
<set-header name="ApiKey" exists-action="override"> <value>${xmlencode(var.my_key)}</value> </set-header>
如果是通过heredoc或者templatefile构造XML字符串,同样可以直接在变量引用处套上xmlencode():
locals { api_header_xml = <<EOF <set-header name="ApiKey" exists-action="override"> <value>${xmlencode(var.my_key)}</value> </set-header> EOF }
这个函数是Terraform官方提供的XML转义工具,能覆盖所有XML规范要求的保留字符转义场景,比手动替换字符更安全可靠,不会出现遗漏或错误转义的情况。
内容的提问来源于stack exchange,提问作者romanoza
相关产品推荐
相关产品推荐

