如何根据条件跳过terraform资源中的可选参数

如何根据条件跳过terraform资源中的可选参数,terraform,terraform0.12+,Terraform,Terraform0.12+,我使用Terraform模块来维护多个环境,对于模块中的一个资源,有一个可选参数,我只想用于一个环境,而不想用于其他环境 例如,在下面的参考资料中,我只希望参数node_shape_config应用于一个环境,而不是其他环境。有没有办法在地形中做到这一点 resource "oci_containerengine_node_pool" "nodepools" { cluster_id = oci_containerengine_cluster.

我使用Terraform模块来维护多个环境,对于模块中的一个资源,有一个可选参数,我只想用于一个环境,而不想用于其他环境

例如,在下面的参考资料中,我只希望参数node_shape_config应用于一个环境,而不是其他环境。有没有办法在地形中做到这一点

resource "oci_containerengine_node_pool" "nodepools" {
  cluster_id     = oci_containerengine_cluster.k8s_cluster.id
  compartment_id = var.oci_vcn.compartment_id
  depends_on     = ["oci_containerengine_cluster.k8s_cluster"]

  kubernetes_version = var.oke_cluster.kubernetes_version
  name               = "${var.oci_vcn.label_prefix}-np-${count.index + 1}"
  subnet_ids         = [var.oke_cluster.worker_subnet_id_1, var.oke_cluster.worker_subnet_id_2, var.oke_cluster.worker_subnet_id_3]

  node_shape_config {
    #Optional
    ocpus = 4
  }

  node_source_details {
    image_id      = var.node_pools.create_custom_image == true ? var.node_pools.custom_image_id : var.node_pools.node_pool_node_image_id
    source_type   = "IMAGE"
  }

  ...
  ...
  ...

  count = var.node_pools.node_pool_count
}

你要找的是。您需要使node_shape_config块动态,您可以这样做:

# assuming you have variable for environment
dynamic "node_shape_config" {
    for_each = var.environment === "development" ? toset([1]) : toset([])
    content {
      ocpus = 4
    }
  }

它将仅为开发环境设置node_shape_config

您要查找的是。您需要使node_shape_config块动态,您可以这样做:

# assuming you have variable for environment
dynamic "node_shape_config" {
    for_each = var.environment === "development" ? toset([1]) : toset([])
    content {
      ocpus = 4
    }
  }

它将只为开发环境设置node\u shape\u config

非常感谢,我不知道动态块。今天我学到了一些新东西。我将验证这是否对我有效。非常感谢,我不知道动态块。今天我学到了一些新东西。我将验证这是否适用于我。