Estou tentando escrever um código Terraform que pegue um objeto aninhado e crie recursos. Normalmente, isso seria feito com o bloco dinâmico, mas o recurso em questão não oferece suporte a isso. Alguém tem alguma ideia sobre qual seria a melhor abordagem para lidar com isso?
A configuração ficaria assim:
dashboards = {
"Test Dashboards" = {
folder_name = "Test Folder"
dashboards = [
{
file. = "test.json"
overwrite = true
},
{
file = "test1.json"
overwrite = false
}
]
}
}
e então na criação de recursos, normalmente seria algo assim:
resource "grafana_dashboard" "dashboards" {
for_each = var.dashboards
folder = each.value.folder_name
dynamic "dashboard" {
for_each = each.value.dashboards
content {
config_json = file("../../dashboards/${dashboards.value["file"]}")
overwrite = dashboards.value["overwrite"]
}
}
}
Mas o bloco dinâmico não é suportado por esse recurso. A única maneira é não duplicar a configuração, pois ela pode ser compartilhada com vários recursos, se isso fizer sentido.