【发布时间】:2021-05-11 06:33:19
【问题描述】:
我正在创建一个 Terraform 模块,它允许用户指定 s3 存储桶的地图以及他们希望添加到这些存储桶的事件通知的属性。
他们将传递给模块的变量如下所示:
input = {
bucket_1 = {
name = "name-of-bucket-1"
filters = [
{
name = "filter1"
filter_prefix = "/test"
filter_suffix = ".txt"
},
{
name = "filter2"
filter_prefix = ""
filter_suffix = ".gz"
}
]
},
bucket_2 = {
name = "name-of-bucket-2"
log_source_type = "aws:cloudtrail:sandbox"
filters = [
{
name = "filter1"
filter_prefix = ""
filter_suffix = ".gz"
}
]
}
}
资源块将按如下方式创建:
resource "aws_s3_bucket_notification" "notification" {
for_each = var.input
bucket = each.value.name
dynamic "topic" {
for_each = each.value.filters
content {
topic_arn = aws_sns_topic.sns_topic_s3[each.key].arn
events = ["s3:ObjectCreated:*"]
filter_prefix = each.value.filters.filter_prefix
filter_suffix = each.value.filters.filter_suffix
}
}
}
不幸的是,在尝试运行计划时,我收到以下错误:
错误:不支持的属性
在模块/aws-splunk-forwarder-s3/main.tf 第 26 行,资源“aws_s3_bucket_notification”>“splunk_forwarder_s3”中: 26: filter_suffix = each.value.filters.filter_suffix |---------------- | each.value.filters 是包含 2 个元素的元组
这个值没有任何属性。
有谁知道我如何实现这一目标? 谢谢, 亚当
【问题讨论】:
标签: terraform