【发布时间】:2021-07-29 23:50:55
【问题描述】:
我一直在使用 TF 构建一个 github 自动化,以构建一个 S3 存储桶,其中一个或多个 IAM 角色作为委托人。当我将角色作为 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"]
但是在实际的 terraform 计划中,该块是乱码。
+ Principal = {
+ AWS = [
+ <<~EOT
arn:aws:iam::[
"123456789011",
"123456789012"
]:role/role-access
EOT,
]
}
感谢您的帮助!
【问题讨论】:
-
您可以回答自己的问题,如果您解决了问题,请接受。
标签: json amazon-web-services terraform amazon-iam github-actions