【发布时间】:2022-01-27 20:49:46
【问题描述】:
我创建了一个监视器和 slo 资源,它们遍历地图并创建了几个类似的对象。 现在我正在尝试创建一个仪表板,并希望指向特定的地图索引以查找 slo 资源。示例:
我有下面的地图:
example_map = {
example_key0 = "example_value0"
example_key1 = "example_value1"
example_key2 = "example_value2"
}
我创建了波纹管 slo(以类似方式创建的监视器):
resource "datadog_service_level_objective" "example_SLO" {
count = length(var.example_map)
name = "example_slo_${keys(var.example_map)[count.index]}"
type = "monitor"
description = "${keys(var.example_map)[count.index]} metric SLO"
monitor_ids = ["${datadog_monitor.example_monitor[count.index].id}"]
thresholds {
timeframe = "90d"
target = 99
warning = 99.9
}
tags = ["type:slo_alerts"]
}
然后这些资源中的每一个都由索引标识(example_SLO[0]、example_SLO[1] 等。) 在仪表板上,我想指出示例键以获取它的索引。波纹管失败了,但我希望这个例子能解释我要实现的目标:
widget {
service_level_objective_definition {
title = "example SLO"
view_type = "detail"
slo_id = datadog_service_level_objective.example_SLO[${index(keys(var.example_map), example_key2)}].id
show_error_budget = true
view_mode = "overall"
time_windows = [
"7d",
"30d",
"previous_month"]
}
}
是否可以为小部件创建 for_each 或 count 参数?从同一个小部件创建多个对象。
非常感谢您的任何帮助,因为这已成为我尝试通过地图迭代减少配置的障碍。这带来了几个层次的复杂性。
【问题讨论】: