2017-03-27 68 views
1

我在PT-plan目录.tf文件有以下明确:Terraform /配置:未知变量引用

${lookup(var.prod, var.pt)} 

此外我有以下terraform.tfvars文件:

variable "prod" { 
    type = "map" 
    default = { 
    pt = "https://pt:9200" 
    } 
} 

当我运行:

/terraform plan pt-plan,它写道:

unknown variable referenced: 'prod'. define it with 'variable' blocks 
unknown variable referenced: 'pt'. define it with 'variable' blocks 

我做错了什么?

+2

这不是你如何在terraform.tfvars文件中定义变量。这需要位于目录中的.tf文件中。 – ydaetskcoR

回答

1

试试这个语法:

"${var.prod["pt"]}"

或者这样:

"${lookup(var.prod, "pt")}"

代替:

"${lookup(var.prod, var.pt)}"

的[var.]之前'pt'是多余的,'pt'也必须被引用。

+0

这不起作用,因为查找映射需要位于.tf文件而不是.tfvars文件。 – ydaetskcoR

+0

是的,也是如此:.tfvars文件只是为现有变量提供实际值,而不是声明var。声明必须位于.tf文件中。但是仍然必须遵循上面提供的语法。 – gevgev