Terraform报错:未知变量‘var’问题求助
解决Terraform "Unknown variable 'var'" 报错
问题原因
这个报错表明Terraform无法识别var.作为变量引用的前缀,常见触发场景有两种:
- 使用的Terraform版本低于0.12,该版本不支持直接
var.variable_name的引用语法,需使用插值表达式。 - 变量定义文件
variables.tf未被Terraform正确加载(文件不在当前工作目录、文件名拼写错误等)。
解决方案
方案1:适配低版本Terraform(0.11及更早)
如果你的Terraform版本低于0.12,修改资源文件中的dynamic块,将变量引用改为插值语法:
dynamic "ip_rule" { for_each = "${var.acr_registry_allowed_ip_ranges}" content { action = "Allow" ip_range = ip_rule.value } }
方案2:确保变量文件正常加载(适用于0.12+版本)
- 确认
variables.tf与资源文件(如container_registry.tf或你提供的acr_contrainer.tf)在同一工作目录下。 - 检查变量文件名是否正确(Terraform会自动加载同目录下所有
.tf后缀文件,variables.tf是标准命名)。 - 执行
terraform init初始化工作目录,确保provider和配置文件被正确识别。 - (可选)修正资源文件名拼写:
acr_contrainer.tf中的contrainer应为container,避免后续维护混淆。
验证
修改完成后,运行以下命令确认配置有效:
terraform validate terraform plan
内容的提问来源于stack exchange,提问作者Carl Che
相关产品推荐
相关产品推荐

