terraform文件中本地参考地图
在tvfars文件中,我有以下内容:terraform文件中本地参考地图,terraform,Terraform,在tvfars文件中,我有以下内容: locals { common = { "my key" = "value" } } 因为我想在该文件的多个位置使用地图。我阅读了terraform文档中关于变量的内容,但找不到正确的语法。我尝试了以下方法(var1和var2都声明为映射): 与 var1 = "${local.common}" var2 = "${local.common}" 我明白了 variable "var1" should be type map
locals {
common = {
"my key" = "value"
}
}
因为我想在该文件的多个位置使用地图。我阅读了terraform文档中关于变量的内容,但找不到正确的语法。我尝试了以下方法(var1和var2都声明为映射):
var1 = "${local.common}"
var2 = "${local.common}"
我明白了
variable "var1" should be type map, got string
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 = locals.common
var2 = locals.common
var1 = {"${local.common}"}
var2 = {"${local.common}"}
我明白了
variable "var1" should be type map, got string
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 = locals.common
var2 = locals.common
var1 = {"${local.common}"}
var2 = {"${local.common}"}
失败时不会显示错误消息,但会打印terraform帮助和terraform退出var1 = {
"my key" = "value"
}
var2 = {
"my key" = "value"
}
有人知道正确的语法吗
local
块、插值和非常量表达式不能在terraform.tfvars
文件中使用
有关进一步讨论,请参阅
解决方法是在terraform.tfvars
中只定义一次变量,并在terraform模块文件中使重复变量成为本地变量
例子:
变量.tf
变量var1{
type=“映射”
}
terraform.tfvars
var1={
“key1”=“value1”,
“键2”=“值2”
}
module.tf
这表明我不能在TFVAR中使用局部变量,但一旦修复了这一问题,map的语法就会出现一个缺失部分。你有没有可能把你的答案扩大到这一点?我认为您只需要标识tfvars文件的内容和将在其中声明映射的variables.tf。我怀疑这是否有效,因为var2也是一个映射,但您正在为其分配字符串。另外,在variable.tf中声明common并在tfvars中给它一个值,并将module.tf中的var1和var2定义为${var.common}会不会简单得多?@Oliver不确定“var2是映射…分配字符串”是什么意思?var1可以分配给var2。也就是说,一个映射变量可以分配给本地块中的另一个变量。如果你想要一个额外的
通用的当然可以,但它更多地与个人偏好和风格有关。