1414
1515package software .amazon .lambda .powertools .e2e ;
1616
17- import com .amazonaws .services .lambda .runtime .Context ;
18- import com .amazonaws .services .lambda .runtime .RequestHandler ;
19- import com .amazonaws .services .lambda .runtime .events .DynamodbEvent ;
20- import com .amazonaws .services .lambda .runtime .events .KinesisEvent ;
21- import com .amazonaws .services .lambda .runtime .events .SQSBatchResponse ;
22- import com .amazonaws .services .lambda .runtime .events .SQSEvent ;
23- import com .amazonaws .services .lambda .runtime .events .StreamsEventResponse ;
24- import com .amazonaws .services .lambda .runtime .serialization .PojoSerializer ;
25- import com .amazonaws .services .lambda .runtime .serialization .events .LambdaEventSerializers ;
2617import java .io .BufferedReader ;
2718import java .io .InputStream ;
2819import java .io .InputStreamReader ;
2920import java .nio .charset .StandardCharsets ;
3021import java .util .HashMap ;
3122import java .util .Map ;
3223import java .util .stream .Collectors ;
24+
3325import org .slf4j .Logger ;
3426import org .slf4j .LoggerFactory ;
27+
28+ import com .amazonaws .services .lambda .runtime .Context ;
29+ import com .amazonaws .services .lambda .runtime .RequestHandler ;
30+ import com .amazonaws .services .lambda .runtime .events .DynamodbEvent ;
31+ import com .amazonaws .services .lambda .runtime .events .KinesisEvent ;
32+ import com .amazonaws .services .lambda .runtime .events .SQSBatchResponse ;
33+ import com .amazonaws .services .lambda .runtime .events .SQSEvent ;
34+ import com .amazonaws .services .lambda .runtime .events .StreamsEventResponse ;
35+ import com .amazonaws .services .lambda .runtime .serialization .PojoSerializer ;
36+ import com .amazonaws .services .lambda .runtime .serialization .events .LambdaEventSerializers ;
37+
3538import software .amazon .awssdk .services .dynamodb .DynamoDbClient ;
3639import software .amazon .awssdk .services .dynamodb .model .AttributeValue ;
3740import software .amazon .awssdk .services .dynamodb .model .PutItemRequest ;
3841import software .amazon .lambda .powertools .batch .BatchMessageHandlerBuilder ;
3942import software .amazon .lambda .powertools .batch .handler .BatchMessageHandler ;
4043import software .amazon .lambda .powertools .e2e .model .Product ;
4144
42-
4345public class Function implements RequestHandler <InputStream , Object > {
4446
4547 private static final Logger LOGGER = LoggerFactory .getLogger (Function .class );
@@ -48,7 +50,6 @@ public class Function implements RequestHandler<InputStream, Object> {
4850 private final BatchMessageHandler <KinesisEvent , StreamsEventResponse > kinesisHandler ;
4951 private final BatchMessageHandler <DynamodbEvent , StreamsEventResponse > ddbHandler ;
5052 private final String ddbOutputTable ;
51- private DynamoDbClient ddbClient ;
5253
5354 public Function () {
5455 sqsHandler = new BatchMessageHandlerBuilder ()
@@ -69,8 +70,7 @@ public Function() {
6970 private void processProductMessage (Product p , Context c ) {
7071 LOGGER .info ("Processing product " + p );
7172
72- // TODO - write product details to output table
73- ddbClient = DynamoDbClient .builder ()
73+ DynamoDbClient ddbClient = DynamoDbClient .builder ()
7474 .build ();
7575 Map <String , AttributeValue > results = new HashMap <>();
7676 results .put ("functionName" , AttributeValue .builder ()
@@ -94,7 +94,7 @@ private void processProductMessage(Product p, Context c) {
9494 private void processDdbMessage (DynamodbEvent .DynamodbStreamRecord dynamodbStreamRecord , Context context ) {
9595 LOGGER .info ("Processing DynamoDB Stream Record" + dynamodbStreamRecord );
9696
97- ddbClient = DynamoDbClient .builder ()
97+ DynamoDbClient ddbClient = DynamoDbClient .builder ()
9898 .build ();
9999
100100 String id = dynamodbStreamRecord .getDynamodb ().getKeys ().get ("id" ).getS ();
@@ -118,26 +118,25 @@ public Object createResult(String input, Context context) {
118118
119119 LOGGER .info (input );
120120
121- PojoSerializer <SQSEvent > serializer =
122- LambdaEventSerializers . serializerFor ( SQSEvent . class , this .getClass ().getClassLoader ());
121+ PojoSerializer <SQSEvent > serializer = LambdaEventSerializers . serializerFor ( SQSEvent . class ,
122+ this .getClass ().getClassLoader ());
123123 SQSEvent event = serializer .fromJson (input );
124- if (event .getRecords ().get (0 ).getEventSource (). equals ( "aws:sqs" )) {
124+ if ("aws:sqs" . equals ( event .getRecords ().get (0 ).getEventSource ())) {
125125 LOGGER .info ("Running for SQS" );
126- LOGGER .info (event .toString ());
127126 return sqsHandler .processBatch (event , context );
128127 }
129128
130- PojoSerializer <KinesisEvent > kinesisSerializer =
131- LambdaEventSerializers . serializerFor ( KinesisEvent . class , this .getClass ().getClassLoader ());
129+ PojoSerializer <KinesisEvent > kinesisSerializer = LambdaEventSerializers . serializerFor ( KinesisEvent . class ,
130+ this .getClass ().getClassLoader ());
132131 KinesisEvent kinesisEvent = kinesisSerializer .fromJson (input );
133- if (kinesisEvent .getRecords ().get (0 ).getEventSource (). equals ( "aws:kinesis" )) {
132+ if ("aws:kinesis" . equals ( kinesisEvent .getRecords ().get (0 ).getEventSource ())) {
134133 LOGGER .info ("Running for Kinesis" );
135134 return kinesisHandler .processBatch (kinesisEvent , context );
136135 }
137136
138137 // Well, let's try dynamo
139- PojoSerializer <DynamodbEvent > ddbSerializer =
140- LambdaEventSerializers . serializerFor ( DynamodbEvent . class , this .getClass ().getClassLoader ());
138+ PojoSerializer <DynamodbEvent > ddbSerializer = LambdaEventSerializers . serializerFor ( DynamodbEvent . class ,
139+ this .getClass ().getClassLoader ());
141140 LOGGER .info ("Running for DynamoDB" );
142141 DynamodbEvent ddbEvent = ddbSerializer .fromJson (input );
143142 return ddbHandler .processBatch (ddbEvent , context );
@@ -148,8 +147,8 @@ public Object handleRequest(InputStream inputStream, Context context) {
148147
149148 String input = new BufferedReader (
150149 new InputStreamReader (inputStream , StandardCharsets .UTF_8 ))
151- .lines ()
152- .collect (Collectors .joining ("\n " ));
150+ .lines ()
151+ .collect (Collectors .joining ("\n " ));
153152
154153 return createResult (input , context );
155154 }
0 commit comments