Terraform-if语句选择适当的变量

Terraform-if语句选择适当的变量,terraform,oracle-call-interface,Terraform,Oracle Call Interface,使用Terraform部署到OCI,我想传入一个名为“nonprod”的变量true或false,以选择我使用的隔间,该隔间在另一个变量“隔间\ ocid”中定义。因此,根据变量“nonprod”是真是假,我想在“隔间cid”中使用不同的值。从我的阅读来看,如果它们是资源而不是变量,这似乎是可行的,因为声明两次是错误的。你知道如何做到这一点,或者用一种更干净的方式实现同样的目标吗 variable "nonprod" { description = "If set to true, non-

使用Terraform部署到OCI,我想传入一个名为“nonprod”的变量true或false,以选择我使用的隔间,该隔间在另一个变量“隔间\ ocid”中定义。因此,根据变量“nonprod”是真是假,我想在“隔间cid”中使用不同的值。从我的阅读来看,如果它们是资源而不是变量,这似乎是可行的,因为声明两次是错误的。你知道如何做到这一点,或者用一种更干净的方式实现同样的目标吗

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
的结果定义的
本地
。比如说

locals {
  compartment_ocid = var.nonprod ? "nonprod_ocid_456" : "prod_ocid_123" 
}
然后,您可以稍后将该值引用为
local.cardio\u ocid

有关详细信息,请参阅