You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform使用EOT添加文件内容时报错,请求排查问题原因

Terraform local_file 多行内容语法错误排查

我帮你排查下这个报错的原因哈~你遇到的「Expected the start of an expression, but found an invalid expression token」错误,基本是heredoc(多行字符串)的语法格式不符合Terraform要求导致的。

Terraform对heredoc的结束标记有严格规则:

  • 不带减号的<<EOT格式:结束标记EOT必须单独占一行,而且完全顶格,不能有任何前置空格或缩进
  • 如果想让结束标记和代码块保持缩进对齐,需要用带减号的<<-EOT格式,此时结束标记前允许使用**制表符(Tab)**缩进,但空格缩进依然不被允许

给你修正后的两种示例:

方式1:顶格结束标记(适合不需要缩进对齐的场景)

terraform {
  required_version = "~>0.13"
  required_providers {
    local = "~>1.4"
  }
}

resource "local_file" "literature" {
  filename = "art_of_war.txt"
  content = <<EOT
Hello world
EOT
}

方式2:带减号的heredoc(支持制表符缩进,代码更整洁)

terraform {
  required_version = "~>0.13"
  required_providers {
    local = "~>1.4"
  }
}

resource "local_file" "literature" {
  filename = "art_of_war.txt"
  content = <<-EOT
Hello world
  EOT
}

注意:第二种方式里的EOT前面只能用Tab缩进,要是用空格的话还是会报错哦~

内容的提问来源于stack exchange,提问作者satish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 21:47:44