Serverless Using Aws Lambda For Java Developers Assignment Solutions
Serverless Using Aws Lambda For Java Developers Assignment Solutions
package helloworld;
import java.time.LocalDateTime;
import java.util.Map;
import helloworld.dto.Payment;
import helloworld.dto.Ticket;
public CreateCustomerLambda() {
dynamoDB = new
DynamoDB(AmazonDynamoDBClientBuilder.defaultClient());
customersTable =
dynamoDB.getTable(System.getenv("CUSTOMERS_TABLE"));
public APIGatewayProxyResponseEvent
createCustomer(APIGatewayProxyRequestEvent request) throws Exception {
Customer customer = objectMapper.readValue(request.getBody(),
Customer.class);
.withString("firstName", customer.getFirstName())
.withString("lastName", customer.getLastName())
.withInt("rewardPoints", customer.getRewardPoints());
customersTable.putItem(item);
return new
APIGatewayProxyResponseEvent().withStatusCode(200).withBody(customer.get
Id().toString());
public ReadCustomersLambda() {
amazonDynamoDB = AmazonDynamoDBClientBuilder.defaultClient();
public APIGatewayProxyResponseEvent
getOrders(APIGatewayProxyRequestEvent request) throws Exception {
.getItems()
.stream()
item.get("firstName").getS(),
item.get("lastName").getS(),
Integer.parseInt(item.get("rewardPoints").getN())))
.collect(Collectors.toList());
return new
APIGatewayProxyResponseEvent().withStatusCode(200).withBody(objectMappe
r.writeValueAsString(orders));
s3Event.getRecords().forEach(record -> {
.getObject(record.getS3().getBucket().getName(),
record.getS3().getObject().getKey())
.getObjectContent();
try {
List<Student> students =
Arrays.asList(objectMapper.readValue(s3ObjectInputStream, Student[].class));
System.out.println(students);
students.forEach(student -> {
student.calculateGradeFromScore();
try {
amazonSNS.publish(System.getenv("PATIENT_CHECKOUT_TOPIC"),
objectMapper.writeValueAsString(student));
} catch (JsonProcessingException e) {
e.printStackTrace();
});
} catch (IOException e) {
e.printStackTrace();
});
snsEvent.getRecords().forEach(record -> {
try {
Student students =
objectMapper.readValue(record.getSNS().getMessage(),
Student.class);
System.out.println(students);
} catch (JsonProcessingException e) {
e.printStackTrace();
});
Assignment 4 : Logging
s3Event.getRecords().forEach(record -> {
.getObject(record.getS3().getBucket().getName(),
record.getS3().getObject().getKey())
.getObjectContent();
try {
List<Student> students =
Arrays.asList(objectMapper.readValue(s3ObjectInputStream, Student[].class));
logger.info(students.toString());
students.forEach(student -> {
student.calculateGradeFromScore();
try {
amazonSNS.publish(System.getenv("PATIENT_CHECKOUT_TOPIC"),
objectMapper.writeValueAsString(student));
} catch (JsonProcessingException e) {
e.printStackTrace();
});
} catch (IOException e) {
logger.error(e.getMessage(), e);
});
}
snsEvent.getRecords().forEach(record -> {
try {
Student students =
objectMapper.readValue(record.getSNS().getMessage(),
Student.class);
logger.info(students.toString());
} catch (JsonProcessingException e) {
logger.error(e.getMessage(), e);
});
}
Assignment 5 : Error Handling
s3Event.getRecords().forEach(record -> {
.getObject(record.getS3().getBucket().getName(),
record.getS3().getObject().getKey())
.getObjectContent();
try {
List<Student> students =
Arrays.asList(objectMapper.readValue(s3ObjectInputStream, Student[].class));
logger.info(students.toString());
students.forEach(student -> {
student.calculateGradeFromScore();
try {
amazonSNS.publish(System.getenv("PATIENT_CHECKOUT_TOPIC"),
objectMapper.writeValueAsString(student));
} catch (JsonProcessingException e) {
logger.error(e.getMessage(), e);
});
} catch (IOException e) {
logger.error(e.getMessage(), e);
});
snsEvent.getRecords().forEach(record -> {
logger.log("Dead Letter Queue Event: " + record.getSNS().getMessage());
});