Skip to content
v2.273.0

S3OnFailureDestination Class ​

An S3 dead letter bucket destination configuration for a Lambda event source.

Example ​

ts
import { ManagedKafkaEventSource, S3OnFailureDestination } from 'aws-cdk-lib/aws-lambda-event-sources';
import { IBucket } from 'aws-cdk-lib/aws-s3';

// Your MSK cluster arn
const clusterArn = 'arn:aws:kafka:us-east-1:0123456789019:cluster/SalesCluster/abcd1234-abcd-cafe-abab-9876543210ab-4';

// The Kafka topic you want to subscribe to
const topic = 'some-cool-topic';

declare const bucket: IBucket;
declare const myFunction: lambda.Function;

const s3OnFailureDestination = new S3OnFailureDestination(bucket);

myFunction.addEventSource(new ManagedKafkaEventSource({
  clusterArn,
  topic,
  startingPosition: lambda.StartingPosition.TRIM_HORIZON,
  onFailure: s3OnFailureDestination,
}));
python
from aws_cdk.aws_lambda_event_sources import ManagedKafkaEventSource, S3OnFailureDestination
from aws_cdk.aws_s3 import IBucket

# bucket: IBucket
# my_function: lambda.Function


# Your MSK cluster arn
cluster_arn = "arn:aws:kafka:us-east-1:0123456789019:cluster/SalesCluster/abcd1234-abcd-cafe-abab-9876543210ab-4"

# The Kafka topic you want to subscribe to
topic = "some-cool-topic"

s3_on_failure_destination = S3OnFailureDestination(bucket)

my_function.add_event_source(ManagedKafkaEventSource(
    cluster_arn=cluster_arn,
    topic=topic,
    starting_position=lambda_.StartingPosition.TRIM_HORIZON,
    on_failure=s3_on_failure_destination
))
java
import software.amazon.awscdk.services.lambda.eventsources.ManagedKafkaEventSource;
import software.amazon.awscdk.services.lambda.eventsources.S3OnFailureDestination;
import software.amazon.awscdk.services.s3.IBucket;

IBucket bucket;
Function myFunction;


// Your MSK cluster arn
String clusterArn = "arn:aws:kafka:us-east-1:0123456789019:cluster/SalesCluster/abcd1234-abcd-cafe-abab-9876543210ab-4";

// The Kafka topic you want to subscribe to
String topic = "some-cool-topic";

S3OnFailureDestination s3OnFailureDestination = new S3OnFailureDestination(bucket);

myFunction.addEventSource(ManagedKafkaEventSource.Builder.create()
        .clusterArn(clusterArn)
        .topic(topic)
        .startingPosition(StartingPosition.TRIM_HORIZON)
        .onFailure(s3OnFailureDestination)
        .build());
csharp
// Install: dotnet add package Amazon.CDK.Lib
using Amazon.CDK.AWS.Lambda.EventSources;
using Amazon.CDK.AWS.S3;

IBucket bucket;
Function myFunction;


// Your MSK cluster arn
var clusterArn = "arn:aws:kafka:us-east-1:0123456789019:cluster/SalesCluster/abcd1234-abcd-cafe-abab-9876543210ab-4";

// The Kafka topic you want to subscribe to
var topic = "some-cool-topic";

var s3OnFailureDestination = new S3OnFailureDestination(bucket);

myFunction.AddEventSource(new ManagedKafkaEventSource(new ManagedKafkaEventSourceProps {
    ClusterArn = clusterArn,
    Topic = topic,
    StartingPosition = StartingPosition.TRIM_HORIZON,
    OnFailure = s3OnFailureDestination
}));
go
// Install: go get github.com/aws/aws-cdk-go/awscdk/v2
import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"

var bucket IBucket
var myFunction Function


// Your MSK cluster arn
clusterArn := "arn:aws:kafka:us-east-1:0123456789019:cluster/SalesCluster/abcd1234-abcd-cafe-abab-9876543210ab-4"

// The Kafka topic you want to subscribe to
topic := "some-cool-topic"

s3OnFailureDestination := awscdk.NewS3OnFailureDestination(bucket)

myFunction.AddEventSource(awscdk.NewManagedKafkaEventSource(&ManagedKafkaEventSourceProps{
	ClusterArn: jsii.String(ClusterArn),
	Topic: jsii.String(Topic),
	StartingPosition: lambda.StartingPosition_TRIM_HORIZON,
	OnFailure: s3OnFailureDestination,
}))

Initializer ​

ts
new S3OnFailureDestination(bucket: IBucket)
python
S3OnFailureDestination(bucket: IBucket)
java
new S3OnFailureDestination(IBucket bucket)
csharp
new S3OnFailureDestination(IBucket bucket)
go
NewS3OnFailureDestination(Bucket IBucket)

Methods ​

bind(_target: IEventSourceMapping, targetHandler: IFunction): DlqDestinationConfigdef bind(self, _target: IEventSourceMapping, target_handler: IFunction) -> DlqDestinationConfigpublic DlqDestinationConfig bind(IEventSourceMapping _target, IFunction targetHandler)public DlqDestinationConfig Bind(IEventSourceMapping _target, IFunction targetHandler)func Bind(_target IEventSourceMapping, TargetHandler IFunction) DlqDestinationConfig#
Returns a destination configuration for the DLQ.