Terraform - if 语句来选择合适的变量
Terraform - if statement to pick appropriate variable
使用 Terraform 部署到 OCI,我想将名为 "nonprod" 的变量传递给 select 我使用的哪个隔间是在另一个变量 [=14] 中定义的 true 或 false =].因此,根据变量 "nonprod" 是真还是假,我想在 "compartment_ocid" 中使用不同的值。根据我的阅读,如果它们是资源而不是变量,这似乎会起作用,因为它会因声明两次而出错。知道如何做到这一点或者实现相同目标的更简洁的方法吗?
variable "nonprod" {
description = "If set to true, non-prod. If false, prod"
type = bool
default = true
}
variable "compartment_ocid" {
count = var.nonprod ? 1 : 0
# Non-Prod compartment
default = "nonprod_ocid_456"
}
variable "compartment_ocid" {
count = var.nonprod ? 0 : 1
# Prod compartment
default = "prod_ocid_123"
}
一个选项是将值合并到由内联 if
的结果定义的 local
中。例如
locals {
compartment_ocid = var.nonprod ? "nonprod_ocid_456" : "prod_ocid_123"
}
然后您可以将该值引用为 local.compartment_ocid
。
有关详细信息,请参阅 terraform's documentation on locals。
使用 Terraform 部署到 OCI,我想将名为 "nonprod" 的变量传递给 select 我使用的哪个隔间是在另一个变量 [=14] 中定义的 true 或 false =].因此,根据变量 "nonprod" 是真还是假,我想在 "compartment_ocid" 中使用不同的值。根据我的阅读,如果它们是资源而不是变量,这似乎会起作用,因为它会因声明两次而出错。知道如何做到这一点或者实现相同目标的更简洁的方法吗?
variable "nonprod" {
description = "If set to true, non-prod. If false, prod"
type = bool
default = true
}
variable "compartment_ocid" {
count = var.nonprod ? 1 : 0
# Non-Prod compartment
default = "nonprod_ocid_456"
}
variable "compartment_ocid" {
count = var.nonprod ? 0 : 1
# Prod compartment
default = "prod_ocid_123"
}
一个选项是将值合并到由内联 if
的结果定义的 local
中。例如
locals {
compartment_ocid = var.nonprod ? "nonprod_ocid_456" : "prod_ocid_123"
}
然后您可以将该值引用为 local.compartment_ocid
。
有关详细信息,请参阅 terraform's documentation on locals。