示例 tf 代码
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")
}
但这里的问题是,当我在 json 文件中引用 uid 时
VMDASHBOARD.json
uid: ${data.grafana_data_source.azure_monitor.uid}
它不是动态的,并显示非法的uid
这个问题可以通过使用
templatefile
内置函数(而不是 )来解决file
。该templatefile
函数允许你动态填充模板文件中的值。对于你的情况,它看起来像这样:为了使其按预期工作,还需要在
VMDASHBOARD.json
文件中进行更改,方法是执行以下操作:这样,您就告诉 terraform
dasbhoard_uid
用从数据源获取的值替换模板文件中的变量。