如何从 terraform variable.tf 文件中的另一个变量创建一个变量?

How to create one variable from another variable in terraform variable.tf file?

例如,在 variable.tf 文件中,我们有如下代码

variable "variable1" {
    type    = string
    default = "ABC"
}

variable "variable2" {
    type    = string
    default = "DEF"
}

variable "variable3" {
    type    = string
    default = "$var.variable1-$var.variable2"
}

预期输出:

变量 3 = ABC-DEF

据我所知,default 无法满足您的需求。

但是您可以创建 variable3 并且不为其分配默认值,然后在您的调用集中 variable3 = var.variable1-var.variable2

不确定这是否能解决您的问题,但据我所知,您想要的方式是行不通的。

另外我建议升级到 v0.12。

你不能这样做。 Docs 明确指出:

The default argument requires a literal value and cannot reference other objects in the configuration.

但是您可能会使用 locals 来代替 variable3

您可以使用local代替

locals {
  variable3 = var.variable1+"-"+var.variable2
}

然后调用它而不是使用 var. 使用 local. 像这样!

resource "example" "example" {

   example = local.variable3

}

参考:https://www.terraform.io/docs/configuration/locals.html

是的,我同意@Montassar,您可以使用local 块从现有资源或变量创建新表达式。但它应该像这样组合变量:

locals {
  variable3 = "${var.variable1}-${var.variable2}"
}

它看起来像这样: