Terragrunt конвертирует карту в строку - PullRequest
0 голосов
/ 12 июля 2020

В моем terragrunt.hcl файле я передаю в модуль несколько переменных - одна из них - карта и список

terraform {
  source = "git@github.com:<my_account>/infrastructure-modules.git//iam?ref=v.0.0.9"
}

include {
  path = find_in_parent_folders()
}

inputs = {
  var_1 = "string"
  var_2 = { 
    object1 = { 
      val1 : "a", 
      val2 : "b" 
    },
    object2 = { 
      val3 : "c", 
      val4 : "d" 
  }
}

, но когда я передаю его модулю

resource "google_project_iam_binding" "members" {
  for_each = var.var2
  project  = var.project_name
  role     = "projects/${var.project_name}/roles/${each.key}"
  members  = each.value
}

он не понимает этого и видит в нем строку

Error: Invalid for_each argument

  on main.tf line 34, in resource "google_project_iam_binding" "members":
  34:   for_each = var.var2

The given "for_each" argument value is unsuitable: the "for_each" argument
must be a map, or set of strings, and you have provided a value of type
string.

у кого-нибудь есть мысли о том, в чем может быть проблема?

1 Ответ

1 голос
/ 12 июля 2020

Решение было странным, но нормальным, пришлось добавить jsondecode(var.var2), чтобы оно работало

...