Skip to content

Latest commit

 

History

History
121 lines (96 loc) · 3.91 KB

File metadata and controls

121 lines (96 loc) · 3.91 KB

AWS Lambda Java Events SDK Transformer Library

About

Provides helper classes/methods to use alongside aws-lambda-java-events in order to transform Lambda input event model objects into SDK-compatible output model objects (eg. DynamodbEvent to a List of records writable back to DynamoDB through the AWS DynamoDB SDK v2).

Getting started

Add the following Apache Maven dependencies to your pom.xml file:

<dependencies>
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-lambda-java-events-sdk-transformer</artifactId>
        <version>1.0.0</version>
    </dependency>
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-lambda-java-events</artifactId>
        <version>2.2.9</version>
    </dependency>
</dependencies>

To use this library as a transformer to the AWS DynamoDB Java SDK v2, also add the following dependencies to your pom.xml file:

<dependencies>
    <dependency>
        <groupId>software.amazon.awssdk</groupId>
        <artifactId>dynamodb</artifactId>
        <version>2.11.12</version>
    </dependency>
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk-dynamodb</artifactId>
        <version>1.11.163</version>
    </dependency>
</dependencies>

Note that because aws-lambda-java-events version 2 requires the DynamoDB v1 SDK, this is also required for this library.

Example Usage

To convert a full DynamodbEvent object to an SDK v2 compatible List<Record>:

import com.amazonaws.services.lambda.runtime.events.transformers.DynamodbEventTransformer;

public class DDBEventProcessor implements RequestHandler<DynamodbEvent, String> {

    public String handleRequest(DynamodbEvent ddbEvent, Context context) {
        // Process input event
        List<Record> convertedRecords = DynamodbEventTransformer.toRecordsV2(ddbEvent);
        // Modify records as needed and write back to DynamoDB using the DynamoDB AWS SDK for Java 2.0
    }
}

To convert a single DynamodbEvent.DynamodbStreamRecord object to an SDK v2 compatible Record:

import com.amazonaws.services.lambda.runtime.events.transformers.dynamodb.DynamodbRecordTransformer;

public class MyClass {

    public void myMethod(DynamodbEvent.DynamodbStreamRecord record) {
        // ...
        Record convertedRecord = DynamodbRecordTransformer.toRecordV2(record);
        // ...
    }
}

To convert a StreamRecord object originating from a DynamodbEvent to an SDK v2 compatible StreamRecord:

import com.amazonaws.services.lambda.runtime.events.transformers.dynamodb.DynamodbStreamRecordTransformer;

public class MyClass {

    public void myMethod(StreamRecord streamRecord) {
        // ...
        software.amazon.awssdk.services.dynamodb.model.StreamRecord convertedStreamRecord = 
                DynamodbStreamRecordTransformer.toStreamRecordV2(streamRecord);
        // ...
    }
}

To convert an AttributeValue object originating from a DynamodbEvent to an SDK v2 compatible AttributeValue:

import com.amazonaws.services.lambda.runtime.events.transformers.dynamodb.DynamodbAttributeValueTransformer;

public class MyClass {

    public void myMethod(AttributeValue attributeValue) {
        // ...
        software.amazon.awssdk.services.dynamodb.model.AttributeValue convertedAttributeValue = 
                DynamodbAttributeValueTransformer.toAttributeValueV2(attributeValue);
        // ...
    }
}

To convert an Identity object originating from a DynamodbEvent to an SDK v2 compatible Identity:

import com.amazonaws.services.lambda.runtime.events.transformers.dynamodb.DynamodbIdentityTransformer;

public class MyClass {

    public void myMethod(Identity identity) {
        // ...
        software.amazon.awssdk.services.dynamodb.model.Identity convertedIdentity =
                DynamodbIdentityTransformer.toIdentityV2(identity);
        // ...
    }
}