Código TF de exemplo
data "grafana_data_source" "azure_monitor" {
name = "grafana-azure-monitor-datasource"
resource "grafana_dashboard" "test" {
folder = grafana_folder.rule_folder.uid
config_json = file("${path.module}/VMDASHBOARD.json")
}
Mas aqui o problema é que quando eu faço referência ao uid dentro do arquivo json
VMDASHBOARD.json
uid: ${data.grafana_data_source.azure_monitor.uid}
não está sendo executado dinamicamente e mostrando uid ilegal
Isso pode ser corrigido usando a
templatefile
função interna em vez defile
. Atemplatefile
função permite preencher dinamicamente os valores em um arquivo de modelo. No seu caso, ficaria algo assim:Para que isso funcione conforme o esperado, a alteração também precisaria acontecer no
VMDASHBOARD.json
arquivo, fazendo o seguinte:Dessa forma, você está dizendo ao Terraform para substituir a variável
dasbhoard_uid
no arquivo de modelo pelo valor que você está obtendo da fonte de dados.