在tvfars文件中我有这个:
locals {
common = {
"my key" = "value"
}
}
因为我想在该文件中的多个地方使用 Map . 我阅读了关于变量的terraform文档,但我找不到正确的语法 . 我尝试了以下(var1和2都声明为map):
- 有
var1 = "${local.common}"
var2 = "${local.common}"
我明白了
variable "var1" should be type map, got string
- 有
var1 = locals.common
var2 = locals.common
我明白了
invalid value "myfile.auto.tfvars" for flag -var-file-default: Error parsing myfile.auto.tfvars: At 18:15: Unknown token: 18:15 IDENT locals.common
- 有
var1 = {"${local.common}"}
var2 = {"${local.common}"}
在没有错误消息的情况下失败但是打印了terraform help和terraform exits .
我确认如果我多次复制/粘贴 Map ,一切正常:
var1 = {
"my key" = "value"
}
var2 = {
"my key" = "value"
}
有谁知道正确的语法?
1 回答
local
块,插值和非常量的表达式不能在terraform.tfvars
文件中使用 .有关进一步的讨论,请参阅github-issue
方法是在
terraform.tfvars
中仅定义变量一次,并在terraform模块文件中将重复变量设置为local .示例:
variable.tf
variable var1 { type = "map" }
terraform.tfvars
var1= { "key1" = "value1", "key2" = "value2" }
module.tf