【问题标题】:Terraform - if statement to pick appropriate variableTerraform - if 语句选择适当的变量
【发布时间】:2020-03-20 12:34:20
【问题描述】:

使用 Terraform 部署到 OCI,我想传入一个名为“nonprod”的变量,无论是真还是假,以选择我使用的隔间,该隔间在另一个变量“compartment_ocid”中定义。因此,根据变量“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"
}

【问题讨论】:

    标签: terraform oracle-call-interface


    【解决方案1】:

    一种选择是将值组合成由内联if 的结果定义的local。例如

    locals {
      compartment_ocid = var.nonprod ? "nonprod_ocid_456" : "prod_ocid_123" 
    }
    

    稍后您可以将该值引用为local.compartment_ocid

    有关详细信息,请参阅terraform's documentation on locals

    【讨论】:

      猜你喜欢
      • 2021-02-14
      • 2015-03-02
      • 1970-01-01
      • 1970-01-01
      • 2011-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多