Skip to content

Commit 078ea56

Browse files
committed
S3Event Handler implementation
1 parent 6d69fb2 commit 078ea56

File tree

8 files changed

+143
-7
lines changed

8 files changed

+143
-7
lines changed

aws-lambda/pom.xml

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,12 @@
1616
<maven.plugins.maven-shade-plugin.version>2.4.3</maven.plugins.maven-shade-plugin.version>
1717
<maven.plugins.maven-compiler-plugin.version>3.6.1</maven.plugins.maven-compiler-plugin.version>
1818
<maven.plugins.maven-build-helper.version>3.0.0</maven.plugins.maven-build-helper.version>
19-
19+
<maven.plugins.maven-shade-plugin.version>2.3</maven.plugins.maven-shade-plugin.version>
2020

2121
<aws-lambda-java-core.version>1.2.0</aws-lambda-java-core.version>
2222
<aws-lambda-java-log4j2.version>1.1.0</aws-lambda-java-log4j2.version>
23+
<aws-lambda-java-events.version>2.2.3</aws-lambda-java-events.version>
24+
<aws-java-sdk-s3.version>1.11.447</aws-java-sdk-s3.version>
2325

2426
<lombok.version>1.18.4</lombok.version>
2527
<dagger.version>2.19</dagger.version>
@@ -33,12 +35,24 @@
3335
<version>${aws-lambda-java-core.version}</version>
3436
</dependency>
3537

38+
<dependency>
39+
<groupId>com.amazonaws</groupId>
40+
<artifactId>aws-lambda-java-events</artifactId>
41+
<version>${aws-lambda-java-events.version}</version>
42+
</dependency>
43+
3644
<dependency>
3745
<groupId>com.amazonaws</groupId>
3846
<artifactId>aws-lambda-java-log4j2</artifactId>
3947
<version>${aws-lambda-java-log4j2.version}</version>
4048
</dependency>
4149

50+
<dependency>
51+
<groupId>com.amazonaws</groupId>
52+
<artifactId>aws-java-sdk-s3</artifactId>
53+
<version>${aws-java-sdk-s3.version}</version>
54+
</dependency>
55+
4256
<dependency>
4357
<groupId>org.projectlombok</groupId>
4458
<artifactId>lombok</artifactId>
@@ -95,6 +109,23 @@
95109
</execution>
96110
</executions>
97111
</plugin>
112+
113+
<plugin>
114+
<groupId>org.apache.maven.plugins</groupId>
115+
<artifactId>maven-shade-plugin</artifactId>
116+
<version>${maven.plugins.maven-shade-plugin.version}</version>
117+
<configuration>
118+
<createDependencyReducedPom>false</createDependencyReducedPom>
119+
</configuration>
120+
<executions>
121+
<execution>
122+
<phase>package</phase>
123+
<goals>
124+
<goal>shade</goal>
125+
</goals>
126+
</execution>
127+
</executions>
128+
</plugin>
98129
</plugins>
99130
</build>
100131

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.fd.tryout.aws.lambda;
2+
3+
import com.amazonaws.services.lambda.runtime.events.S3Event;
4+
import com.fd.tryout.aws.lambda.handler.MyS3PutEventHandler;
5+
import com.fd.tryout.aws.lambda.handler.MySampleHandler;
6+
import com.fd.tryout.aws.lambda.model.MyRequest;
7+
import com.fd.tryout.aws.lambda.model.MyResponse;
8+
9+
import java.util.ArrayList;
10+
11+
/**
12+
* @author fdanismaz
13+
* date: 11/12/18 11:33 PM
14+
*/
15+
public class App {
16+
17+
public static void main(String[] args) {
18+
MySampleHandler handler = new MySampleHandler();
19+
MyResponse response = handler.handleRequest(MyRequest.builder().name("furkan").surname("danismaz").build(), null);
20+
System.out.println(response);
21+
22+
MyS3PutEventHandler handler2 = new MyS3PutEventHandler();
23+
MyResponse response2 = handler2.handleRequest(new S3Event(new ArrayList<>()), null);
24+
System.out.println(response2);
25+
}
26+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.fd.tryout.aws.lambda.config;
2+
3+
import com.fd.tryout.aws.lambda.service.MyService;
4+
import com.fd.tryout.aws.lambda.service.S3EventHandlerService;
5+
import dagger.Component;
6+
7+
/**
8+
* @author fdanismaz
9+
* date: 11/12/18 11:32 PM
10+
*/
11+
@Component
12+
public interface IocConfig {
13+
14+
MyService myService();
15+
16+
S3EventHandlerService s3EventHandlerService();
17+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.fd.tryout.aws.lambda.handler;
2+
3+
import com.amazonaws.services.lambda.runtime.Context;
4+
import com.amazonaws.services.lambda.runtime.RequestHandler;
5+
import com.amazonaws.services.lambda.runtime.events.S3Event;
6+
import com.fd.tryout.aws.lambda.config.DaggerIocConfig;
7+
import com.fd.tryout.aws.lambda.config.IocConfig;
8+
import com.fd.tryout.aws.lambda.model.MyResponse;
9+
import com.fd.tryout.aws.lambda.service.S3EventHandlerService;
10+
11+
/**
12+
* @author fdanismaz
13+
* date: 11/12/18 11:42 PM
14+
*/
15+
public class MyS3PutEventHandler implements RequestHandler<S3Event, MyResponse> {
16+
17+
private S3EventHandlerService service;
18+
19+
public MyS3PutEventHandler() {
20+
IocConfig ioc = DaggerIocConfig.create();
21+
this.service = ioc.s3EventHandlerService();
22+
}
23+
24+
@Override
25+
public MyResponse handleRequest(S3Event event, Context context) {
26+
return this.service.handle(event, context);
27+
}
28+
}

aws-lambda/src/main/java/com/fd/tryout/aws/lambda/MySampleHandler.java renamed to aws-lambda/src/main/java/com/fd/tryout/aws/lambda/handler/MySampleHandler.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,25 @@
1-
package com.fd.tryout.aws.lambda;
1+
package com.fd.tryout.aws.lambda.handler;
22

33
import com.amazonaws.services.lambda.runtime.Context;
44
import com.amazonaws.services.lambda.runtime.RequestHandler;
5+
import com.fd.tryout.aws.lambda.service.MyService;
6+
import com.fd.tryout.aws.lambda.config.DaggerIocConfig;
7+
import com.fd.tryout.aws.lambda.config.IocConfig;
58
import com.fd.tryout.aws.lambda.model.MyRequest;
69
import com.fd.tryout.aws.lambda.model.MyResponse;
710

8-
import javax.inject.Inject;
9-
1011
/**
1112
* @author fdanismaz
1213
* date: 11/11/18 4:58 PM
1314
*/
1415
public class MySampleHandler implements RequestHandler<MyRequest, MyResponse> {
1516

16-
@Inject
17-
MyService myService;
17+
private MyService myService;
18+
19+
public MySampleHandler() {
20+
IocConfig ioc = DaggerIocConfig.create();
21+
this.myService = ioc.myService();
22+
}
1823

1924
/**
2025
* Entry point

aws-lambda/src/main/java/com/fd/tryout/aws/lambda/model/MyRequest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,18 @@
11
package com.fd.tryout.aws.lambda.model;
22

3+
import lombok.AllArgsConstructor;
4+
import lombok.Builder;
35
import lombok.Data;
6+
import lombok.NoArgsConstructor;
47

58
/**
69
* @author fdanismaz
710
* date: 11/11/18 5:06 PM
811
*/
912
@Data
13+
@Builder
14+
@AllArgsConstructor
15+
@NoArgsConstructor
1016
public class MyRequest {
1117

1218
private String name;

aws-lambda/src/main/java/com/fd/tryout/aws/lambda/MyService.java renamed to aws-lambda/src/main/java/com/fd/tryout/aws/lambda/service/MyService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.fd.tryout.aws.lambda;
1+
package com.fd.tryout.aws.lambda.service;
22

33
import com.amazonaws.services.lambda.runtime.Context;
44
import com.fd.tryout.aws.lambda.model.MyRequest;
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.fd.tryout.aws.lambda.service;
2+
3+
import com.amazonaws.services.lambda.runtime.Context;
4+
import com.amazonaws.services.lambda.runtime.events.S3Event;
5+
import com.fd.tryout.aws.lambda.model.MyResponse;
6+
7+
import javax.inject.Inject;
8+
9+
/**
10+
* @author fdanismaz
11+
* date: 11/12/18 11:50 PM
12+
*/
13+
public class S3EventHandlerService {
14+
15+
@Inject
16+
public S3EventHandlerService() {
17+
}
18+
19+
public MyResponse handle(S3Event event, Context context) {
20+
String message = event.toString();
21+
return new MyResponse(message);
22+
}
23+
}

0 commit comments

Comments
 (0)