Skip to content

Commit 8d73e4e

Browse files
committed
Update README.md
1 parent 70b8349 commit 8d73e4e

File tree

1 file changed

+34
-2
lines changed

1 file changed

+34
-2
lines changed

README.md

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,34 @@
1-
# aws-lambda-java-example
2-
A simple Java Lambda based server-less application that implements a reimbursement use case, with AWS Lambda, AWS SES, and AWS DynamoDB
1+
# AWS Lambda Java Example
2+
3+
A simple Java Lambda based server-less application that implements a reimbursement use case, with AWS Lambda, AWS API Gateway, AWS SES, and AWS DynamoDB. Set up the project with Eclipse and AWS Toolkit plugin.
4+
5+
## Getting Started
6+
### IDE Setup
7+
1. Open Eclipse
8+
2. Install the AWS Toolkit for Eclipse and set up your AWS access key id and secret access key: http://docs.aws.amazon.com/AWSToolkitEclipse/latest/ug/tke_setup_install.html
9+
3. Import project LambdaForm: Right click on the Package Explorer > Import > General > Existing Projects into Workspace. Do the same for LambdaSendMail and LambdaApproval.
10+
4. Sign up for AWS Lambda, API Gateway, DynamoDB, and SES (if you have not done so, yet).
11+
12+
### Upload Lambda Functions
13+
5. Right click on the LambdaForm project folder > Amazon Web Services > Upload Function to AWS Lambda > Follow the steps in the wizard and create a new Lambda Function.
14+
6. Upload the Lambda Functions of the other two projects LambdaSendMail and LambdaApproval.
15+
7. Give the Lambda Functions an IAM role that allows access to DynamoDB and SES.
16+
17+
### AWS Services setup
18+
8. Set up a DynamoDB table named 'lambda-reimbursment' with the Hash Key 'employee_id' of type String. In the example, the EU-WEST-1 region (Ireland) is chosen.
19+
9. In the AWS dashboard, go to Lambda > LambdaSendMail > Event source. Add an event source of type DynamoDB (table: lambda-reimbursment) with default settings.
20+
10. Do the same as in step 5 for LambdaApproval.
21+
11. In the AWS dashboard, go to API Gateway and create a new API that points at the LambdaApproval Function. Create a Resource "reimbursment" and a GET method. Click on "Method Request" and add a query string parameter "id". Click on "Integration Request" and add a Mapping Template with content type "application/json" and Template:
22+
```
23+
{
24+
"employee_id" : "$input.params('id')"
25+
}
26+
```
27+
Deploy the API.
28+
29+
### Run Lambda Functions
30+
12. Right click on the LambdaForm project folder > Amazon Web Services > Run Function on AWS Lambda > Enter a JSON object like this one:
31+
```{"employee_id":"1", "employee_name":"John Doh", "expense_type":"travel","amount": "456.75" }```
32+
13. If the Lambda Function completes successfully, a new entry will be added to the DynamoDB table lambda-reimbursment that you created in step 8.
33+
14. LambdaSendMail gets triggered by the DynamoDB stream (pull model) and sends an e-mail with the info that has been added to the table.
34+
15. If you have received the e-mail and click on the approval URL in the e-mail body, the LambdaApproval Function will be called and add an "approved" column entry to DynamoDB.

0 commit comments

Comments
 (0)