Мой main.tf выглядит так: я пытаюсь передать несколько файлов json в качестве входных данных в ресурс панели инструментов, но сталкиваюсь с ошибкой.
locals{
json_file = fileset(path.module, "dash/*.json")
json_data = {
for files in local.json_file : files => jsondecode(file(files))
}
}
resource "google_monitoring_dashboard" "dashboards" {
for_each = local.json_data
project = var.monitoring_project
dashboard_json = local.json_data
}
Я получаю следующую ошибку
│ Error: Incorrect attribute value type
│
│ on dashboard.tf line 12, in resource "google_monitoring_dashboard" "usecase_dashboards":
│ 12: dashboard_json = local.json_data
│ ├────────────────
│ │ local.json_data is object with 1 attribute "dash/airflow-dashboard.json"
│
│ Inappropriate value for attribute "dashboard_json": string required.
нет, та же ошибка....
Ах, извините, попробуйте dashboard_json = each.value
с вышеуказанным изменением.
│ Ошибка: "dashboard_json" содержит недопустимый JSON: недопустимый символ 'd' при поиске начала значения │ │ с google_monitoring_dashboard.usecase_dashboards["dash/airflow-dashboard.json"], │ в строке 18 dashboard.tf, в ресурсе "google_monitoring_dashboard" "usecase_dashboards": │ 18: dashboard_json = каждое.значение
Наконец понял это
locals{
json_file = fileset(path.module, "dash/*.json")
}
resource "google_monitoring_dashboard" "usecase_dashboards" {
for_each = local.json_file
project = var.monitoring_project
dashboard_json =file(each.key)
}
Спасибо @marko-e, Ваши комментарии дали подсказку...
Можете попробовать с
for_each = fileset(path.module, "dash/*.json")
?