Skip to content
v2.277.0

SnsEventSourceProps Struct ​

Properties forwarded to the Lambda Subscription.

Example ​

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

declare const topic: sns.Topic;
const deadLetterQueue = new sqs.Queue(this, 'deadLetterQueue');

declare const fn: lambda.Function;
fn.addEventSource(new SnsEventSource(topic, {
  filterPolicy: { },
  deadLetterQueue: deadLetterQueue,
}));
python
import aws_cdk.aws_sns as sns
from aws_cdk.aws_lambda_event_sources import SnsEventSource

# topic: sns.Topic

# fn: lambda.Function

dead_letter_queue = sqs.Queue(self, "deadLetterQueue")
fn.add_event_source(SnsEventSource(topic,
    filter_policy={},
    dead_letter_queue=dead_letter_queue
))
java
import software.amazon.awscdk.services.sns.*;
import software.amazon.awscdk.services.lambda.eventsources.SnsEventSource;

Topic topic;

Function fn;

Queue deadLetterQueue = new Queue(this, "deadLetterQueue");
fn.addEventSource(SnsEventSource.Builder.create(topic)
        .filterPolicy(Map.of())
        .deadLetterQueue(deadLetterQueue)
        .build());
csharp
// Install: dotnet add package Amazon.CDK.Lib
using Amazon.CDK.AWS.SNS;
using Amazon.CDK.AWS.Lambda.EventSources;

Topic topic;

Function fn;

var deadLetterQueue = new Queue(this, "deadLetterQueue");
fn.AddEventSource(new SnsEventSource(topic, new SnsEventSourceProps {
    FilterPolicy = new Dictionary<string, object> { },
    DeadLetterQueue = deadLetterQueue
}));
go
// Install: go get github.com/aws/aws-cdk-go/awscdk/v2
import sns "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"

var topic Topic

var fn Function

deadLetterQueue := sqs.NewQueue(this, jsii.String("deadLetterQueue"))
fn.AddEventSource(awscdk.NewSnsEventSource(topic, &SnsEventSourceProps{
	FilterPolicy: map[string]interface{}{
	},
	DeadLetterQueue: deadLetterQueue,
}))

Properties ​

deadLetterQueueoptionalIQueuedead_letter_queueoptionalIQueuedeadLetterQueueoptionalIQueueDeadLetterQueueoptionalIQueueDeadLetterQueueoptionalIQueue#
Queue to be used as dead letter queue.

Default: No dead letter queue enabled.

If not passed no dead letter queue is enabled.

filterPolicyoptional{ [key: string]: SubscriptionFilter }filter_policyoptionaltyping.Mapping[str, SubscriptionFilter]filterPolicyoptionalMap<String, SubscriptionFilter>FilterPolicyoptionalIDictionary<string, SubscriptionFilter>FilterPolicyoptional*map[string]SubscriptionFilter#
The filter policy.

Default: all messages are delivered

filterPolicyWithMessageBodyoptional{ [key: string]: FilterOrPolicy }filter_policy_with_message_bodyoptionaltyping.Mapping[str, FilterOrPolicy]filterPolicyWithMessageBodyoptionalMap<String, FilterOrPolicy>FilterPolicyWithMessageBodyoptionalIDictionary<string, FilterOrPolicy>FilterPolicyWithMessageBodyoptional*map[string]FilterOrPolicy#
The filter policy that is applied on the message body.

Default: all messages are delivered

To apply a filter policy to the message attributes, use filterPolicy. A maximum of one of filterPolicyWithMessageBody and filterPolicy may be used.