首页 文章

在terraform文件中的本地参考 Map

提问于
浏览
1

在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 回答

  • 0

    local 块,插值和非常量的表达式不能在 terraform.tfvars 文件中使用 .

    有关进一步的讨论,请参阅github-issue

    方法是在 terraform.tfvars 中仅定义变量一次,并在terraform模块文件中将重复变量设置为local .

    示例:

    variable.tf

    variable var1 { type = "map" }

    terraform.tfvars

    var1= { "key1" = "value1", "key2" = "value2" }

    module.tf

    locals {  
        var2="${var.var1}"  
     }  
    
     output show_var2 {
        value = "${local.var2}"
     }
    

相关问题