azure 如何在dynmic块中使用for_each添加条件

j5fpnvbx  于 2023-02-09  发布在  其他
关注(0)|答案(1)|浏览(79)

在下面的代码中,我计划实现如果value为null,则不执行代码块,否则执行

dynamic "request_uri_condition" {
    
              for_each      =  delivery_rule.value.request_uri_condition_operator != "" ?1 : 0
              content{
              operator      = delivery_rule.value.request_uri_condition_operator
              match_values  = delivery_rule.value.request_uri_condition_match_values
            }
          }
    • 变量. tf**
variable "delivery_rules" {
  type = list(object({
    cdnendpoint                            = string
    name                                   = string
    order                                  = number
    request_scheme_conditions_match_values = list(string)
    request_scheme_conditions_operator     = string
}))
}
    • 错误:无法在for_each中使用数字值。需要可迭代的集合。**
ia2d9nvy

ia2d9nvy1#

使用下面的语法确定delivery_rules是否为空。

错误:无法在for_each中使用数字值。需要可迭代的集合。
这意味着条件运算符应该以字符串而不是数字(?1:0)的形式给出。在进行更改后,我在自己的环境中进行了验证,一切都按预期运行。

dynamic "request_uri_condition" {
    
         for_each  = var.delivery_rule != "" ? var.delivery_rule : "default"   
              content{     
              operator      = delivery_rule.value.request_uri_condition_operator
              match_values  = delivery_rule.value.request_uri_condition_match_values
            }
         }

已成功使用terraform init初始化地形:

terraform plan已执行,未出现“类型”错误:

参考terraform conditionalsterraform registry Cdn template

相关问题