我试图创建一个可选的iam策略,但我一直收到类型不匹配的错误,我尝试过将它包装在try中,但从来没有成功过,有人有什么想法吗?
ssm_readonly_policies = can(coalescelist(local.ssm_parameters)) ? [
{
Sid = "ReadOnlyParametersSSM"
Effect = "Allow"
Action = [
"ssm:GetParameter*"
]
Resource = flatten([for param in local.ssm_parameters : join(":", [
"arn:aws:ssm", param["region"], param["account"], join("/", ["parameter", param["name"]])
])])
},
{
Sid = "ListOnlyParametersSSM"
Effect = "Allow"
Action = "ssm:DescribeParameters"
Resource = "*"
}
] : []local.ssm_parameters的格式为
ssm_parameters = [
{
name = "blah"
region = "blah"
account = "blah"
}
]发布于 2021-10-20 11:14:35
好的,我避免了if语句,在try中添加了coaleselist,所以如果它是空的,它将失败为空列表
ssm_readonly_policies = try([
{
Sid = "ReadOnlyParametersSSM"
Effect = "Allow"
Action = [
"ssm:GetParameter*"
]
Resource = flatten([for param in coalescelist(local.ssm_parameters) : join(":", [
"arn:aws:ssm", param["region"], param["account"], join("/", ["parameter", param["name"]])
])])
},
{
Sid = "ListOnlyParametersSSM"
Effect = "Allow"
Action = "ssm:DescribeParameters"
Resource = "*"
}
], [])https://stackoverflow.com/questions/69481610
复制相似问题