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.