FilterRule Class
Filter rules 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 FilterRule()
python
FilterRule()
java
new FilterRule()
csharp
new FilterRule()
go
NewFilterRule()
Methods
beginsWith(elem: string): { [key: string]: string }[]@staticmethod def begins_with(elem: str) -> typing.List[typing.Mapping[str, str]]public static List<Map<String, String>> beginsWith(String elem)public static IDictionary<string, string>[] BeginsWith(string elem)func BeginsWith(Elem *string) *[]*map[string]*stringstatic#Begins with comparison operator.
between(first: number, second: number): { [key: string]: any[] }[]@staticmethod def between(first: int | float, second: int | float) -> typing.List[typing.Mapping[str, typing.List[Any]]]public static List<Map<String, List<Object>>> between(Number first, Number second)public static IDictionary<string, object[]>[] Between(double first, double second)func Between(First *float64, Second *float64) *[]*map[string]*[]interface{}static#Numeric range comparison operator.
empty(): string[]@staticmethod def empty() -> typing.List[str]public static List<String> empty()public static string[] Empty()func Empty() *[]*stringstatic#Empty comparison operator.
exists(): { [key: string]: boolean }[]@staticmethod def exists() -> typing.List[typing.Mapping[str, bool]]public static List<Map<String, Boolean>> exists()public static IDictionary<string, bool>[] Exists()func Exists() *[]*map[string]*boolstatic#Exists comparison operator.
isEqual(item: string | number | boolean): any@staticmethod def is_equal(item: typing.Union[str, int | float, bool]) -> Anypublic static Object isEqual(String item)public static object IsEqual(string item)func IsEqual(Item interface{}) interface{}static#Equals comparison operator.
notEquals(elem: string): { [key: string]: string[] }[]@staticmethod def not_equals(elem: str) -> typing.List[typing.Mapping[str, typing.List[str]]]public static List<Map<String, List<String>>> notEquals(String elem)public static IDictionary<string, string[]>[] NotEquals(string elem)func NotEquals(Elem *string) *[]*map[string]*[]*stringstatic#Not equals comparison operator.
notExists(): { [key: string]: boolean }[]@staticmethod def not_exists() -> typing.List[typing.Mapping[str, bool]]public static List<Map<String, Boolean>> notExists()public static IDictionary<string, bool>[] NotExists()func NotExists() *[]*map[string]*boolstatic#Not exists comparison operator.
null(): any@staticmethod def null() -> Anypublic static Object null()public static object Null()func Null() interface{}static#Null comparison operator.
or(...elem: string[]): string[]@staticmethod def or(elem: str) -> typing.List[str]public static List<String> or(String elem)public static string[] Or(string elem)func Or(Elem *string) *[]*stringstatic#Or comparison operator.