为列表中的每个元素添加单独的Terraform参数

问题描述

我将pagerduty_ruleset_rule资源与count结合使用来创建多个PagerDuty规则。每个规则都是根据count.index地图列表中的services设计的。


变量定义-services地图列表(以var.services形式传递):

variable "services" {
  type        = list(object({ id = string,service_tags = list(string) }))
  description = "List of service IDs and tags to route events to"
}

资源定义-pagerduty_ruleset_rule

resource "pagerduty_ruleset_rule" "rule" {
  count = length(var.services)

  ruleset  = pagerduty_ruleset.custom_ruleset.id
  position = count.index
  disabled = false
  conditions {
    operator = "or"
    subconditions {
      operator = "contains"
      parameter {
        path  = "payload.group"
        value = "service:${var.services[count.index].service_tags[0]}"
      }
    }
    subconditions {
      operator = "contains"
      parameter {
        path  = "payload.group"
        value = "service:${var.services[count.index].service_tags[1]}"
      }
    }
  }
  actions {
    route {
      value = var.services[count.index].id
    }
  }
}

请注意,对于subconditions中的每个元素,我如何有单独的service_tags映射。

是否有一种基于subconditions列表的大小动态创建service_tags映射的方法

在上面的代码段中,我假设列表的大小为2(索引[0][1]),但是我希望它是动态的-数量为{{ 1}}等于subconditions列表的大小。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)