Skip to content

Commit 6d69fb2

Browse files
committed
AWS Lambda Function sample
1 parent 261a72d commit 6d69fb2

5 files changed

Lines changed: 183 additions & 0 deletions

File tree

aws-lambda/pom.xml

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
7+
<groupId>com.fd</groupId>
8+
<artifactId>tryout-aws-lambda</artifactId>
9+
<version>1.0-SNAPSHOT</version>
10+
11+
<properties>
12+
<java-version>1.8</java-version>
13+
<maven.compiler.source>1.8</maven.compiler.source>
14+
<maven.compiler.target>1.8</maven.compiler.target>
15+
16+
<maven.plugins.maven-shade-plugin.version>2.4.3</maven.plugins.maven-shade-plugin.version>
17+
<maven.plugins.maven-compiler-plugin.version>3.6.1</maven.plugins.maven-compiler-plugin.version>
18+
<maven.plugins.maven-build-helper.version>3.0.0</maven.plugins.maven-build-helper.version>
19+
20+
21+
<aws-lambda-java-core.version>1.2.0</aws-lambda-java-core.version>
22+
<aws-lambda-java-log4j2.version>1.1.0</aws-lambda-java-log4j2.version>
23+
24+
<lombok.version>1.18.4</lombok.version>
25+
<dagger.version>2.19</dagger.version>
26+
</properties>
27+
28+
<dependencies>
29+
30+
<dependency>
31+
<groupId>com.amazonaws</groupId>
32+
<artifactId>aws-lambda-java-core</artifactId>
33+
<version>${aws-lambda-java-core.version}</version>
34+
</dependency>
35+
36+
<dependency>
37+
<groupId>com.amazonaws</groupId>
38+
<artifactId>aws-lambda-java-log4j2</artifactId>
39+
<version>${aws-lambda-java-log4j2.version}</version>
40+
</dependency>
41+
42+
<dependency>
43+
<groupId>org.projectlombok</groupId>
44+
<artifactId>lombok</artifactId>
45+
<version>${lombok.version}</version>
46+
<scope>provided</scope>
47+
</dependency>
48+
49+
<dependency>
50+
<groupId>com.google.dagger</groupId>
51+
<artifactId>dagger</artifactId>
52+
<version>${dagger.version}</version>
53+
</dependency>
54+
55+
</dependencies>
56+
57+
<build>
58+
<plugins>
59+
<plugin>
60+
<groupId>org.apache.maven.plugins</groupId>
61+
<artifactId>maven-compiler-plugin</artifactId>
62+
<version>${maven.plugins.maven-compiler-plugin.version}</version>
63+
<configuration>
64+
<annotationProcessorPaths>
65+
<path>
66+
<groupId>com.google.dagger</groupId>
67+
<artifactId>dagger-compiler</artifactId>
68+
<version>${dagger.version}</version>
69+
</path>
70+
71+
<path>
72+
<groupId>org.projectlombok</groupId>
73+
<artifactId>lombok</artifactId>
74+
<version>${lombok.version}</version>
75+
</path>
76+
</annotationProcessorPaths>
77+
</configuration>
78+
</plugin>
79+
80+
<plugin>
81+
<groupId>org.codehaus.mojo</groupId>
82+
<artifactId>build-helper-maven-plugin</artifactId>
83+
<version>${maven.plugins.maven-build-helper.version}</version>
84+
<executions>
85+
<execution>
86+
<phase>generate-sources</phase>
87+
<goals>
88+
<goal>add-source</goal>
89+
</goals>
90+
<configuration>
91+
<sources>
92+
<source>target/generated-sources/annotations</source>
93+
</sources>
94+
</configuration>
95+
</execution>
96+
</executions>
97+
</plugin>
98+
</plugins>
99+
</build>
100+
101+
</project>
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.fd.tryout.aws.lambda;
2+
3+
import com.amazonaws.services.lambda.runtime.Context;
4+
import com.amazonaws.services.lambda.runtime.RequestHandler;
5+
import com.fd.tryout.aws.lambda.model.MyRequest;
6+
import com.fd.tryout.aws.lambda.model.MyResponse;
7+
8+
import javax.inject.Inject;
9+
10+
/**
11+
* @author fdanismaz
12+
* date: 11/11/18 4:58 PM
13+
*/
14+
public class MySampleHandler implements RequestHandler<MyRequest, MyResponse> {
15+
16+
@Inject
17+
MyService myService;
18+
19+
/**
20+
* Entry point
21+
* @param myRequest
22+
* @param context
23+
* @return
24+
*/
25+
@Override
26+
public MyResponse handleRequest(MyRequest myRequest, Context context) {
27+
return this.myService.execute(myRequest, context);
28+
}
29+
}
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;
2+
3+
import com.amazonaws.services.lambda.runtime.Context;
4+
import com.fd.tryout.aws.lambda.model.MyRequest;
5+
import com.fd.tryout.aws.lambda.model.MyResponse;
6+
7+
import javax.inject.Inject;
8+
9+
/**
10+
* @author fdanismaz
11+
* date: 11/11/18 5:13 PM
12+
*/
13+
public class MyService {
14+
15+
@Inject
16+
public MyService() {
17+
}
18+
19+
public MyResponse execute(MyRequest request, Context context) {
20+
String greetings = String.format("Hello %s %s", request.getName(), request.getSurname());
21+
return new MyResponse(greetings);
22+
}
23+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.fd.tryout.aws.lambda.model;
2+
3+
import lombok.Data;
4+
5+
/**
6+
* @author fdanismaz
7+
* date: 11/11/18 5:06 PM
8+
*/
9+
@Data
10+
public class MyRequest {
11+
12+
private String name;
13+
private String surname;
14+
15+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.fd.tryout.aws.lambda.model;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Data;
5+
6+
/**
7+
* @author fdanismaz
8+
* date: 11/11/18 5:06 PM
9+
*/
10+
@Data
11+
@AllArgsConstructor
12+
public class MyResponse {
13+
14+
private String greetings;
15+
}

0 commit comments

Comments
 (0)