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).
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.8</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.
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);
// ...
}
}