Skip to content
v2.274.0

FilterCriteria Class ​

Filter criteria for Lambda event filtering.

Example ​

ts
import * as dynamodb from 'aws-cdk-lib/aws-dynamodb';
import { DynamoEventSource } from 'aws-cdk-lib/aws-lambda-event-sources';

declare const table: dynamodb.Table;

declare const fn: lambda.Function;
fn.addEventSource(new DynamoEventSource(table, {
  startingPosition: lambda.StartingPosition.LATEST,
  filters: [
    lambda.FilterCriteria.filter({
      eventName: lambda.FilterRule.isEqual('INSERT'),
      dynamodb: {
        NewImage: {
          id: { BOOL: lambda.FilterRule.isEqual(true) },
        },
      },
    }),
  ],
}));
python
import aws_cdk.aws_dynamodb as dynamodb
from aws_cdk.aws_lambda_event_sources import DynamoEventSource

# table: dynamodb.Table

# fn: lambda.Function

fn.add_event_source(DynamoEventSource(table,
    starting_position=lambda_.StartingPosition.LATEST,
    filters=[
        lambda_.FilterCriteria.filter({
            "event_name": lambda_.FilterRule.is_equal("INSERT"),
            "dynamodb": {
                "NewImage": {
                    "id": {"BOOL": lambda_.FilterRule.is_equal(True)}
                }
            }
        })
    ]
))
java
import software.amazon.awscdk.services.dynamodb.*;
import software.amazon.awscdk.services.lambda.eventsources.DynamoEventSource;

Table table;

Function fn;

fn.addEventSource(DynamoEventSource.Builder.create(table)
        .startingPosition(StartingPosition.LATEST)
        .filters(List.of(FilterCriteria.filter(Map.of(
                "eventName", FilterRule.isEqual("INSERT"),
                "dynamodb", Map.of(
                        "NewImage", Map.of(
                                "id", Map.of("BOOL", FilterRule.isEqual(true))))))))
        .build());
csharp
// Install: dotnet add package Amazon.CDK.Lib
using Amazon.CDK.AWS.DynamoDB;
using Amazon.CDK.AWS.Lambda.EventSources;

Table table;

Function fn;

fn.AddEventSource(new DynamoEventSource(table, new DynamoEventSourceProps {
    StartingPosition = StartingPosition.LATEST,
    Filters = new [] { FilterCriteria.Filter(new Dictionary<string, object> {
        { "eventName", FilterRule.IsEqual("INSERT") },
        { "dynamodb", new Dictionary<string, IDictionary<string, IDictionary<string, object>>> {
            { "NewImage", new Struct {
                Id = new Struct { BOOL = FilterRule.IsEqual(true) }
            } }
        } }
    }) }
}));
go
// Install: go get github.com/aws/aws-cdk-go/awscdk/v2
import dynamodb "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"

var table Table

var fn Function

fn.AddEventSource(awscdk.NewDynamoEventSource(table, &DynamoEventSourceProps{
	StartingPosition: lambda.StartingPosition_LATEST,
	Filters: []map[string]interface{}{
		lambda.FilterCriteria_Filter(map[string]interface{}{
			"eventName": lambda.FilterRule_isEqual(jsii.String("INSERT")),
			"dynamodb": map[string]map[string]map[string]interface{}{
				"NewImage": map[string]map[string]interface{}{
					"id": map[string]interface{}{
						"BOOL": lambda.FilterRule_isEqual(jsii.Boolean(true)),
					},
				},
			},
		}),
	},
}))

Initializer ​

ts
new FilterCriteria()
python
FilterCriteria()
java
new FilterCriteria()
csharp
new FilterCriteria()
go
NewFilterCriteria()

Methods ​

filter(filter: { [key: string]: any }): { [key: string]: any }@staticmethod def filter(filter: typing.Mapping[str, Any]) -> typing.Mapping[str, Any]public static Map<String, Object> filter(Map<String, Object> filter)public static IDictionary<string, object> Filter(IDictionary<string, object> filter)func Filter(Filter *map[string]interface{}) *map[string]interface{}static#
Filter for event source.