-
Notifications
You must be signed in to change notification settings - Fork 90
/
Copy pathAppSqsEventUtil.java
39 lines (31 loc) · 1.48 KB
/
AppSqsEventUtil.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package helloworld;
import java.util.List;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.lambda.runtime.events.SQSEvent;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import software.amazon.lambda.powertools.sqs.SqsUtils;
import software.amazon.lambda.powertools.sqs.SQSBatchProcessingException;
import static java.util.Collections.emptyList;
public class AppSqsEventUtil implements RequestHandler<SQSEvent, List<String>> {
private static final Logger log = LogManager.getLogger(AppSqsEventUtil.class);
@Override
public List<String> handleRequest(SQSEvent input, Context context) {
try {
return SqsUtils.batchProcessor(input, (message) -> {
if ("19dd0b57-b21e-4ac1-bd88-01bbb068cb99".equals(message.getMessageId())) {
throw new RuntimeException(message.getMessageId());
}
log.info("Processing message with details {}", message);
return message.getMessageId();
});
} catch (SQSBatchProcessingException e) {
log.info("Exception details {}", e.getMessage(), e);
log.info("Success message Returns{}", e.successMessageReturnValues());
log.info("Failed messages {}", e.getFailures());
log.info("Failed messages Reasons {}", e.getExceptions());
return emptyList();
}
}
}