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

Terraform命令行传递列表变量时出现“Error: Variables not allowed”错误

Terraform变量传递报错解决

问题场景

我的variable.tf文件内容:

variable "users"{
    type = list
}

output-list.tf文件内容:

output print-users{
    value = "First user is ${var.users[0]}\nSecond user is ${var.users[1]}"
}

执行terraform plan并手动输入["Abhishek","Arya"]时输出正常,但执行terraform plan -var 'users=["Abhishek","Arya"]'时触发Error: Variables not allowed错误。

解决方法

这是shell对引号的解析逻辑导致的问题,以下几种方式可以解决:

  • 调整引号嵌套格式
    用双引号包裹整个变量参数,内部元素用单引号:

    terraform plan -var "users=['Abhishek','Arya']"
    
  • 转义内部双引号
    如果偏好单引号包裹整体,需要对内部的双引号进行转义(适用于Bash等主流shell):

    terraform plan -var 'users=[\"Abhishek\",\"Arya\"]'
    
  • 使用变量文件(推荐)
    创建terraform.tfvars文件并写入变量值:

    users = ["Abhishek", "Arya"]
    

    之后直接执行命令即可,Terraform会自动读取该文件的变量:

    terraform plan
    

    这种方式更清晰,也适合管理多个或复杂变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 02:26:19