如何从 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
}
是的,我同意@Montassar,您可以使用local
块从现有资源或变量创建新表达式。但它应该像这样组合变量:
locals {
variable3 = "${var.variable1}-${var.variable2}"
}
它看起来像这样:
例如,在 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
}
是的,我同意@Montassar,您可以使用local
块从现有资源或变量创建新表达式。但它应该像这样组合变量:
locals {
variable3 = "${var.variable1}-${var.variable2}"
}
它看起来像这样: