Как перебирать списки в Terraform

у меня есть код

      resource "oci_core_security_list" "db_security_list" {
  count          = var.deploy_database ? 1 : 0
  compartment_id = var.network_compartment_id
  vcn_id         = var.vcn_id
  freeform_tags  = { "Component" = "Database" }
  display_name   = "test-db-sl"
  ingress_security_rules {
    protocol = "6" # TCP
    source   = var.compute_subnet_cidr
    tcp_options {
      max = "1522"
      min = "1522"
    }
  }
}

В настоящее время compute_subnet_cidr имеет единственный блок cidr подсети

как я могу выполнить итерацию, если compute_subnet_cidr является списком.

      compute_subnet_cidr  = ["10.10.10.0/24", "10.10.10.1/24", "10.10.10.2/24"]

Как я могу изменить приведенный выше код?

1 ответ

Да, вы можете использовать динамические блоки :

      resource "oci_core_security_list" "db_security_list" {
  count          = var.deploy_database ? 1 : 0
  compartment_id = var.network_compartment_id
  vcn_id         = var.vcn_id
  freeform_tags  = { "Component" = "Database" }
  display_name   = "test-db-sl"

  dynamic "ingress_security_rules" {    
      for_each   = var.compute_subnet_cidr
      content {
        protocol = "6" # TCP
        source   = ingress_security_rules.value
        tcp_options {
          max = "1522"
          min = "1522"
        }
     }
   }  

}
Другие вопросы по тегам