If you want to write a Lambda for AWS in Java that connects to a Kinesis Stream. You need to have the handler.
Maven:
- <dependency>
- <groupId>com.amazonaws</groupId>
- <artifactId>aws-java-sdk</artifactId>
- <version>1.11.109</version>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- <version>2.7.1</version>
- </dependency>
This is the method that AWS Lambda will call. It will look similar to the one below.
- import com.amazonaws.services.lambda.runtime.Context;
- import com.amazonaws.services.lambda.runtime.events.KinesisEvent;
- import com.amazonaws.services.lambda.runtime.events.KinesisEvent.KinesisEventRecord;
- import com.amazonaws.services.kinesis.model.Record;
- import com.fasterxml.jackson.databind.ObjectMapper;
- import com.fasterxml.jackson.databind.JsonNode;
- public void kinesisRecordHandler(KinesisEvent kinesisEvent, Context context) {
- final String awsRequestId = context.getAwsRequestId();
- final int memoryLimitMb = context.getMemoryLimitInMB();
- final int remainingTimeInMillis = context.getRemainingTimeInMillis();
- for (final KinesisEventRecord kinesisRec : kinesisEvent.getRecords()) {
- final Record record = kinesisRec.getKinesis();
- //We get the kinesis data information
- final JsonNode recData = new ObjectMapper().readValue(record.getData().array(), JsonNode.class);
- final String bucketName = recData.get("bucket").asText();
- final String key = recData.get("key").asText();
- }
- }
The thing to note when you setup you Lambda is how to setup the “Handler” field in the “Configuration” section on AWS. It is in the format “##PACKAGE##.##CLASS##::##METHOD##”.
You must be logged in to post a comment.