Skip to content

Commit 83f900c

Browse files
committed
Add SQS to the list of java-events examples.
- The blank-java example is just a Lambda function that handles SQSEvent objects. - Moved this example to inside the java-events folder. - Tested this change using the sqs path, as well as ensured current examples still work.
1 parent cad20e9 commit 83f900c

File tree

8 files changed

+63
-4
lines changed

8 files changed

+63
-4
lines changed

sample-apps/.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ build
1111
*.zip
1212
bin
1313
obj
14-
main
1514
Gemfile.lock
1615
lib
1716
__pycache__
1817
*.pyc
18+
.DS_Store

sample-apps/java-events/3-invoke.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ then
4040
s3)
4141
PAYLOAD='file://events/s3-notification.json'
4242
;;
43+
sqs)
44+
PAYLOAD='file://events/sqs-record.json'
45+
;;
4346
*)
4447
echo -n "Unknown event type"
4548
;;

sample-apps/java-events/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ By default, the function uses a handler class named `Handler` that takes an API
9898
- `HandlerLex.java` - Takes `LexEvent` as input.
9999
- `HandlerS3.java` - Takes `S3Event` as input.
100100
- `HandlerSNS.java` - Takes `SNSEvent` as input.
101+
- `HandlerSQS.java` - Takes `SQSEvent` as input.
101102

102103
To use a different handler, change the value of the Handler setting in the application template (`template.yml` or `template-mvn.yaml`). For example, to use the Amazon Lex handler:
103104

@@ -128,6 +129,7 @@ The following event type keys are supported:
128129
- `lex` - Lex dialog (`events/lex-flowers.json`)
129130
- `ddb` - DynamoDB record (`events/dynamodb-record.json`)
130131
- `s3` - S3Event record (`events/s3-notification.json`)
132+
- `sqs` - SQSEvent record (`events/sqs-record.json`)
131133

132134
# Cleanup
133135
To delete the application, run `4-cleanup.sh`.

sample-apps/java-events/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ repositories {
88

99
dependencies {
1010
implementation 'com.amazonaws:aws-lambda-java-core:1.2.1'
11-
implementation 'com.amazonaws:aws-lambda-java-events:3.9.0'
11+
implementation 'com.amazonaws:aws-lambda-java-events:3.11.0'
1212
implementation 'com.google.code.gson:gson:2.8.6'
1313
implementation 'org.apache.logging.log4j:log4j-api:[2.17.1,)'
1414
implementation 'org.apache.logging.log4j:log4j-core:[2.17.1,)'
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"Records": [
3+
{
4+
"messageId": "19dd0b57-b21e-4ac1-bd88-01bbb068cb78",
5+
"receiptHandle": "MessageReceiptHandle",
6+
"body": "Hello from SQS!",
7+
"attributes": {
8+
"ApproximateReceiveCount": "1",
9+
"SentTimestamp": "1523232000000",
10+
"SenderId": "123456789012",
11+
"ApproximateFirstReceiveTimestamp": "1523232000001"
12+
},
13+
"messageAttributes": {},
14+
"md5OfBody": "7b270e59b47ff90a553787216d55d91d",
15+
"eventSource": "aws:sqs",
16+
"eventSourceARN": "arn:aws:sqs:us-west-2:123456789012:MyQueue",
17+
"awsRegion": "us-west-2"
18+
}
19+
]
20+
}

sample-apps/java-events/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<dependency>
2121
<groupId>com.amazonaws</groupId>
2222
<artifactId>aws-lambda-java-events</artifactId>
23-
<version>3.9.0</version>
23+
<version>3.11.0</version>
2424
</dependency>
2525
<dependency>
2626
<groupId>com.google.code.gson</groupId>
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
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.events.SQSEvent;
6+
import com.amazonaws.services.lambda.runtime.events.SQSEvent.SQSMessage;
7+
8+
import com.google.gson.Gson;
9+
import com.google.gson.GsonBuilder;
10+
11+
import org.slf4j.Logger;
12+
import org.slf4j.LoggerFactory;
13+
14+
// Handler value: example.HandlerSQS
15+
public class HandlerSQS implements RequestHandler<SQSEvent, String>{
16+
private static final Logger logger = LoggerFactory.getLogger(HandlerSQS.class);
17+
Gson gson = new GsonBuilder().setPrettyPrinting().create();
18+
@Override
19+
public String handleRequest(SQSEvent event, Context context)
20+
{
21+
String response = new String("200 OK");
22+
// log execution details
23+
logger.info("ENVIRONMENT VARIABLES: {}", gson.toJson(System.getenv()));
24+
logger.info("CONTEXT: {}", gson.toJson(context));
25+
logger.info("EVENT: {}", gson.toJson(event));
26+
// process event
27+
for(SQSMessage msg : event.getRecords()){
28+
logger.info(msg.getBody());
29+
}
30+
// log execution details
31+
Util.logEnvironment(event, context, gson);
32+
return response;
33+
}
34+
}

sample-apps/java-events/template.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Resources:
66
Type: AWS::Serverless::Function
77
Properties:
88
CodeUri: build/distributions/java-events.zip
9-
Handler: example.Handler
9+
Handler: example.HandlerSQS
1010
Runtime: java8
1111
Description: Java function
1212
MemorySize: 512

0 commit comments

Comments
 (0)