Google cloud platform Terragrunt将地图转换为字符串
在我的Google cloud platform Terragrunt将地图转换为字符串,google-cloud-platform,terraform,terragrunt,Google Cloud Platform,Terraform,Terragrunt,在我的terragrunt.hcl文件中,我将几个变量传递给一个模块,其中一个是map和list 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"
terragrunt.hcl
文件中,我将几个变量传递给一个模块,其中一个是map和list
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"
}
}
它不理解它,把它看成一个字符串
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.
有人对可能出现的问题有什么想法吗?解决方案很奇怪,但还行,必须添加
jsondecode(var.var2)
才能使其正常工作我遇到了类似的问题,必须将terraform变量定义为类型映射,这似乎允许terragrunt将其作为字符串传递,并让terraform为您解析它
variable var2 {
type = map
}
将输出放在输出中有助于找到它不起作用的原因
variable var2 {
type = map
}