diff --git a/examples/event-source-mapping/main.tf b/examples/event-source-mapping/main.tf index 0b0b5cd7..9266dfc9 100644 --- a/examples/event-source-mapping/main.tf +++ b/examples/event-source-mapping/main.tf @@ -31,10 +31,23 @@ module "lambda_function" { event_source_arn = aws_dynamodb_table.this.stream_arn starting_position = "LATEST" destination_arn_on_failure = aws_sqs_queue.failure.arn + filter_criteria = { + pattern = jsonencode({ + eventName : ["INSERT"] + }) + } } kinesis = { event_source_arn = aws_kinesis_stream.this.arn starting_position = "LATEST" + filter_criteria = { + pattern = jsonencode({ + data : { + Temperature : [{ numeric : [">", 0, "<=", 100] }] + Location : ["Oslo"] + } + }) + } } mq = { event_source_arn = aws_mq_broker.this.arn diff --git a/main.tf b/main.tf index 1f4e8271..dc509538 100644 --- a/main.tf +++ b/main.tf @@ -256,4 +256,14 @@ resource "aws_lambda_event_source_mapping" "this" { uri = source_access_configuration.value["uri"] } } + + dynamic "filter_criteria" { + for_each = lookup(each.value, "filter_criteria", null) != null ? [true] : [] + + content { + filter { + pattern = lookup(filter_criteria, "pattern", null) + } + } + } }