Skip to content

Commit ea892da

Browse files
committed
Add handlers & logging config to java-events samples
1 parent a170fde commit ea892da

File tree

4 files changed

+114
-0
lines changed

4 files changed

+114
-0
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package example;
2+
3+
import com.amazonaws.services.lambda.runtime.Context;
4+
import com.amazonaws.services.lambda.runtime.RequestHandler;
5+
import com.amazonaws.services.lambda.runtime.LambdaLogger;
6+
import com.amazonaws.services.lambda.runtime.events.DynamodbEvent;
7+
import com.amazonaws.services.lambda.runtime.events.DynamodbEvent.DynamodbStreamRecord;
8+
9+
import com.google.gson.Gson;
10+
import com.google.gson.GsonBuilder;
11+
12+
import org.slf4j.Logger;
13+
import org.slf4j.LoggerFactory;
14+
15+
// Handler value: example.HandlerDynamoDB
16+
public class HandlerDynamoDB implements RequestHandler<DynamodbEvent, String>{
17+
private static final Logger logger = LoggerFactory.getLogger(HandlerDynamoDB.class);
18+
Gson gson = new GsonBuilder().setPrettyPrinting().create();
19+
@Override
20+
public String handleRequest(DynamodbEvent event, Context context)
21+
{
22+
String response = new String("200 OK");
23+
for (DynamodbStreamRecord record : event.getRecords()){
24+
logger.info(record.getEventID());
25+
logger.info(record.getEventName());
26+
logger.info(record.getDynamodb().toString());
27+
}
28+
logger.info("Successfully processed " + event.getRecords().size() + " records.");
29+
// log execution details
30+
Util.logEnvironment(event, context, gson);
31+
return response;
32+
}
33+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package example;
2+
3+
import com.amazonaws.services.lambda.runtime.Context;
4+
import com.amazonaws.services.lambda.runtime.RequestHandler;
5+
import com.amazonaws.services.lambda.runtime.LambdaLogger;
6+
import com.amazonaws.services.lambda.runtime.events.KinesisEvent;
7+
import com.amazonaws.services.lambda.runtime.events.KinesisEvent.KinesisEventRecord;
8+
9+
import com.google.gson.Gson;
10+
import com.google.gson.GsonBuilder;
11+
12+
import org.slf4j.Logger;
13+
import org.slf4j.LoggerFactory;
14+
15+
// Handler value: example.HandleKinesis
16+
public class HandlerKinesis implements RequestHandler<KinesisEvent, String>{
17+
private static final Logger logger = LoggerFactory.getLogger(HandlerKinesis.class);
18+
Gson gson = new GsonBuilder().setPrettyPrinting().create();
19+
@Override
20+
public String handleRequest(KinesisEvent event, Context context)
21+
{
22+
String response = new String("200 OK");
23+
for(KinesisEventRecord record : event.getRecords()) {
24+
logger.info(gson.toJson(record.getKinesis().getData()));
25+
}
26+
// log execution details
27+
Util.logEnvironment(event, context, gson);
28+
return response;
29+
}
30+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package example;
2+
3+
import com.amazonaws.services.lambda.runtime.Context;
4+
import com.amazonaws.services.lambda.runtime.RequestHandler;
5+
import com.amazonaws.services.lambda.runtime.LambdaLogger;
6+
import com.amazonaws.services.lambda.runtime.events.S3Event;
7+
8+
import com.amazonaws.services.lambda.runtime.events.models.s3.S3EventNotification.S3EventNotificationRecord;
9+
10+
import com.google.gson.Gson;
11+
import com.google.gson.GsonBuilder;
12+
13+
import org.slf4j.Logger;
14+
import org.slf4j.LoggerFactory;
15+
16+
// Handler value: example.Handler
17+
public class HandlerS3 implements RequestHandler<S3Event, String>{
18+
private static final Logger logger = LoggerFactory.getLogger(HandlerS3.class);
19+
Gson gson = new GsonBuilder().setPrettyPrinting().create();
20+
@Override
21+
public String handleRequest(S3Event event, Context context)
22+
{
23+
String response = new String("200 OK");
24+
S3EventNotificationRecord record = event.getRecords().get(0);
25+
String srcBucket = record.getS3().getBucket().getName();
26+
// Object key may have spaces or unicode non-ASCII characters.
27+
String srcKey = record.getS3().getObject().getUrlDecodedKey();
28+
logger.info("RECORD: " + record);
29+
logger.info("SOURCE BUCKET: " + srcBucket);
30+
logger.info("SOURCE KEY: " + srcKey);
31+
// log execution details
32+
Util.logEnvironment(event, context, gson);
33+
return response;
34+
}
35+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<Configuration status="WARN">
2+
<Appenders>
3+
<Lambda name="Lambda">
4+
<PatternLayout>
5+
<pattern>%d{yyyy-MM-dd HH:mm:ss} %X{AWSRequestId} %-5p %c{1} - %m%n</pattern>
6+
</PatternLayout>
7+
</Lambda>
8+
</Appenders>
9+
<Loggers>
10+
<Root level="INFO">
11+
<AppenderRef ref="Lambda"/>
12+
</Root>
13+
<Logger name="software.amazon.awssdk" level="WARN" />
14+
<Logger name="software.amazon.awssdk.request" level="DEBUG" />
15+
</Loggers>
16+
</Configuration>

0 commit comments

Comments
 (0)