地形计划乱码 jq/json 输出,但地形控制台不会



我一直在用TF构建github自动化,以构建一个以一个或多个IAM角色为主体的S3存储桶。当我将角色作为JSON分配给var(jsonencode/formatlist(时,使用terraform控制台进行测试可以完美地显示生成的策略。

但是当我运行一个TF计划时,json却被打乱了,导致了一个格式不正确的主体块。

这是我的AWS账号可变区块

variable "account_num" {
default = [
"123456789011",
"123456789012"
]
}

Terraform代码块如下所示。

"Principal": {
"AWS": ${jsonencode(formatlist("arn:aws:iam::%s:role/role-access", var.account_num))}
},

当我使用terraform控制台使用jsonencode/formatlist尝试这个var块时,它完美地创建了策略块。

$ terraform console    
> jsonencode(formatlist("arn:aws:iam::%s:role/role-access", var.account_num))
["arn:aws:iam::123456789011:role/role-access","arn:aws:iam::123456789012:role/role-access"]

然而,在实际的地形图中,该区块是混乱的。

+ Principal = {
+ AWS = [
+ <<~EOT
arn:aws:iam::[
"123456789011",
"123456789012"
]:role/role-access
EOT,
]
}

谢谢你的帮助!

我通过声明变量类型"字符串";可变

"account_num" { 
type = list(string) 
default = [] 
}

相关内容

  • 没有找到相关文章

最新更新