Package software.amazon.awscdk.services.pipes.sources.alpha


@Stability(Experimental) package software.amazon.awscdk.services.pipes.sources.alpha

Amazon EventBridge Pipes Sources Construct Library

---

cdk-constructs: Experimental

The APIs of higher level constructs in this module are experimental and under active development. They are subject to non-backward compatible changes or removal in any future version. These are not subject to the Semantic Versioning model and breaking changes will be announced in the release notes. This means that while you may use them, you may need to update your source code when upgrading to a newer version of this package.


EventBridge Pipes Sources let you create a source for a EventBridge Pipe.

For more details see the service documentation:

Documentation

Pipe sources

Pipe sources are the starting point of a EventBridge Pipe. They are the source of the events that are sent to the pipe.

Amazon SQS

A SQS message queue can be used as a source for a pipe. The queue will be polled for new messages and the messages will be sent to the pipe.

 Queue sourceQueue;
 Queue targetQueue;
 
 
 SqsSource pipeSource = new SqsSource(sourceQueue);
 
 Pipe pipe = Pipe.Builder.create(this, "Pipe")
         .source(pipeSource)
         .target(new SomeTarget(targetQueue))
         .build();
 

The polling configuration can be customized:

 Queue sourceQueue;
 Queue targetQueue;
 
 
 SqsSource pipeSource = SqsSource.Builder.create(sourceQueue)
         .batchSize(10)
         .maximumBatchingWindow(Duration.seconds(10))
         .build();
 
 Pipe pipe = Pipe.Builder.create(this, "Pipe")
         .source(pipeSource)
         .target(new SomeTarget(targetQueue))
         .build();
 

Amazon Kinesis

A Kinesis stream can be used as a source for a pipe. The stream will be polled for new messages and the messages will be sent to the pipe.

 Stream sourceStream;
 Queue targetQueue;
 
 
 KinesisSource pipeSource = KinesisSource.Builder.create(sourceStream)
         .startingPosition(KinesisStartingPosition.LATEST)
         .build();
 
 Pipe pipe = Pipe.Builder.create(this, "Pipe")
         .source(pipeSource)
         .target(new SomeTarget(targetQueue))
         .build();
 

Amazon DynamoDB

A DynamoDB stream can be used as a source for a pipe. The stream will be polled for new messages and the messages will be sent to the pipe.

 Queue targetQueue;
 TableV2 table = TableV2.Builder.create(this, "MyTable")
         .partitionKey(Attribute.builder()
                 .name("id")
                 .type(AttributeType.STRING)
                 .build())
         .dynamoStream(StreamViewType.NEW_IMAGE)
         .build();
 
 DynamoDBSource pipeSource = DynamoDBSource.Builder.create(table)
         .startingPosition(DynamoDBStartingPosition.LATEST)
         .build();
 
 Pipe pipe = Pipe.Builder.create(this, "Pipe")
         .source(pipeSource)
         .target(new SomeTarget(targetQueue))
         .build();