21
21
import software .amazon .awssdk .services .s3 .S3Client ;
22
22
23
23
import com .amazonaws .services .lambda .runtime .Context ;
24
+ import com .amazonaws .services .lambda .runtime .LambdaLogger ;
24
25
import com .amazonaws .services .lambda .runtime .RequestHandler ;
25
26
import com .amazonaws .services .lambda .runtime .events .S3Event ;
26
27
import com .amazonaws .services .lambda .runtime .events .models .s3 .S3EventNotification .S3EventNotificationRecord ;
27
28
28
- import org .slf4j .Logger ;
29
- import org .slf4j .LoggerFactory ;
30
-
31
29
// Handler value: example.Handler
32
30
public class Handler implements RequestHandler <S3Event , String > {
33
- private static final Logger logger = LoggerFactory .getLogger (Handler .class );
34
31
private static final float MAX_DIMENSION = 100 ;
35
32
private final String REGEX = ".*\\ .([^\\ .]*)" ;
36
33
private final String JPG_TYPE = "jpg" ;
@@ -39,6 +36,7 @@ public class Handler implements RequestHandler<S3Event, String> {
39
36
private final String PNG_MIME = "image/png" ;
40
37
@ Override
41
38
public String handleRequest (S3Event s3event , Context context ) {
39
+ LambdaLogger logger = context .getLogger ();
42
40
try {
43
41
S3EventNotificationRecord record = s3event .getRecords ().get (0 );
44
42
@@ -53,12 +51,12 @@ public String handleRequest(S3Event s3event, Context context) {
53
51
// Infer the image type.
54
52
Matcher matcher = Pattern .compile (REGEX ).matcher (srcKey );
55
53
if (!matcher .matches ()) {
56
- logger .info ("Unable to infer image type for key " + srcKey );
54
+ logger .log ("Unable to infer image type for key " + srcKey );
57
55
return "" ;
58
56
}
59
57
String imageType = matcher .group (1 );
60
58
if (!(JPG_TYPE .equals (imageType )) && !(PNG_TYPE .equals (imageType ))) {
61
- logger .info ("Skipping non-image " + srcKey );
59
+ logger .log ("Skipping non-image " + srcKey );
62
60
return "" ;
63
61
}
64
62
@@ -75,9 +73,9 @@ public String handleRequest(S3Event s3event, Context context) {
75
73
ImageIO .write (newImage , imageType , outputStream );
76
74
77
75
// Upload new image to S3
78
- putObject (s3Client , outputStream , dstBucket , dstKey , imageType );
76
+ putObject (s3Client , outputStream , dstBucket , dstKey , imageType , logger );
79
77
80
- logger .info ("Successfully resized " + srcBucket + "/"
78
+ logger .log ("Successfully resized " + srcBucket + "/"
81
79
+ srcKey + " and uploaded to " + dstBucket + "/" + dstKey );
82
80
return "Ok" ;
83
81
} catch (IOException e ) {
@@ -94,7 +92,7 @@ private InputStream getObject(S3Client s3Client, String bucket, String key) {
94
92
}
95
93
96
94
private void putObject (S3Client s3Client , ByteArrayOutputStream outputStream ,
97
- String bucket , String key , String imageType ) {
95
+ String bucket , String key , String imageType , LambdaLogger logger ) {
98
96
Map <String , String > metadata = new HashMap <>();
99
97
metadata .put ("Content-Length" , Integer .toString (outputStream .size ()));
100
98
if (JPG_TYPE .equals (imageType )) {
@@ -110,14 +108,14 @@ private void putObject(S3Client s3Client, ByteArrayOutputStream outputStream,
110
108
.build ();
111
109
112
110
// Uploading to S3 destination bucket
113
- logger .info ("Writing to: " + bucket + "/" + key );
111
+ logger .log ("Writing to: " + bucket + "/" + key );
114
112
try {
115
113
s3Client .putObject (putObjectRequest ,
116
114
RequestBody .fromBytes (outputStream .toByteArray ()));
117
115
}
118
116
catch (AwsServiceException e )
119
117
{
120
- logger .error (e .awsErrorDetails ().errorMessage ());
118
+ logger .log (e .awsErrorDetails ().errorMessage ());
121
119
System .exit (1 );
122
120
}
123
121
}
0 commit comments