Terraform导入GCP资源后执行init遇多行字符串无效错误
Terraform Import后Init报错:Invalid multi-line string 解决办法
- 先定位报错的具体行:虽然自动生成的.tf文件每行末尾加了
\n,但大概率是转义符位置不对,或者字符串里有未处理的特殊字符(比如嵌套引号),先找到报错提示的那几行代码。 - 直接手动修改没问题:Terraform import生成的文件本来就是给后续调整维护用的,不用纠结“自动生成不能改”。把报错的多行字符串换成heredoc语法,彻底解决转义问题,示例:
原来的错误写法(可能带多余或错误的\n):
改成heredoc写法:description = "这是第一行\n这是第二行\n这是第三行"
这种写法不用加任何转义符,格式还清晰,不会出现跨行字符串的语法错误。description = <<EOF 这是第一行 这是第二行 这是第三行 EOF - 大量修改的快捷方式:如果有很多这类字符串,用编辑器的批量替换功能处理,比如把开头的
"和结尾的"替换成heredoc的标记,几分钟就能搞定,不会乱格式。 - 先验证再执行:改完后先跑
terraform validate检查语法是否合法,没问题再执行terraform init,确保报错消失。 - 版本兼容说明:你用的Terraform v1.3.6完全支持heredoc语法,不用担心版本适配问题。
内容的提问来源于stack exchange,提问作者ayush sharma
相关产品推荐
相关产品推荐

