【发布时间】:2021-05-26 12:15:03
【问题描述】:
我想在 s3 中创建文件(密钥)。通过以下代码,我可以在 s3 中成功创建文件 -
locals {
rules = [
{
user = "user-1",
roles = "test"
}
}
resource "aws_s3_bucket_object" "this" {
for_each = zipmap(local.rules.*.user, local.rules.*)
bucket = "test-09129"
acl = "private"
source = "/dev/null"
key = "${each.value.roles}/${each.key}"
}
s3 中的文件 - 创建了 test/user-1
但角色可以是多个,所以我为角色创建列表。
locals {
rules = [
{
user = "user-1",
roles = ["test"]
},
{
user = "user-2",
roles = ["test", "dev", "prd"]
}]
}
现在我想根据上面的列表创建文件。如何迭代列表(角色)以根据用户和角色创建文件? 渴望输出 -
file in s3 -
test/user-1
test/user-2
dev/user-2
prd/user-2
【问题讨论】:
-
该错误与您的本地无关。您在
roles_associate中使用的全部资源是什么? -
我正在使用 aws_s3_bucket_object 资源。
-
如果勾选docs,则
aws_s3_bucket_object中没有roles_associate,这会导致你的错误。 -
我想,动态块可以在任何资源中使用。我正在更新问题,请问您有什么解决方案。
-
动态块只能用于给定资源支持的块。在您的情况下,您在
aws_s3_bucket_object中使用未知块。
标签: list amazon-web-services amazon-s3 foreach terraform