hari989
hari989

Reputation: 37

Unsupported argument for_each from terraform

I'm trying to create a multiple delivery rules for the azure cdn endpoint through terraform. But while trying to achieve the same getting below error,

Error: Unsupported argument

│ on main.tf line 71, in resource "azurerm_cdn_endpoint" "default": 71: for_each = { │ An argument named "for_each" is not expected here. ╵

delivery_rule {
    for_each = {
      for deliveryrule in var.delivery_rules : deliveryrule.name => deliveryrule
    }
    name  = each.value.name
    order = each.value.order
    request_scheme_condition {
      operator     = each.value.operator
      match_values = each.value.match_values

    }
    url_redirect_action {
      redirect_type = each.value.redirect_type #"Found"
      protocol      = each.value.protocol #"Https"
    }
  }

Upvotes: 0

Views: 210

Answers (1)

Marcin
Marcin

Reputation: 238081

You have to use dynamic blocks:

dynamic "delivery_rule" {
    for_each = {
      for deliveryrule in var.delivery_rules : deliveryrule.name => deliveryrule   
   }
   
   content {
    name  = delivery_rule.value.name
    order = delivery_rule.value.order
    request_scheme_condition {
      operator     = delivery_rule.value.operator
      match_values = delivery_rule.value.match_values

    }
    url_redirect_action {
      redirect_type = delivery_rule.value.redirect_type #"Found"
      protocol      = delivery_rule.value.protocol #"Https"
    } 
  }
}

Upvotes: 1

Related Questions