in src/com/amazonaws/lab/HealthDataEventHandler.java [33:75]
public Void handleRequest(SQSEvent input, Context context) {
List<SQSMessage> records = input.getRecords();
log.debug("The records received size : "+records.size());
String sKey = "";
String sBucket = "";
String sFileName = "";
String sUUID = "";
for(SQSMessage msg : records) {
String body = msg.getBody();
log.debug("The message body : "+ msg.getBody());
S3EventNotification s3EventNotf = S3EventNotification.parseJson(body);
log.debug("The S3 notification body : "+ s3EventNotf.getRecords());
List<S3EventNotificationRecord> s3EventRecords = s3EventNotf.getRecords();
for(S3EventNotificationRecord s3EventRec : s3EventRecords) {
sKey = s3EventRec.getS3().getObject().getKey();
sBucket = s3EventRec.getS3().getBucket().getName();
sUUID = UUID.randomUUID().toString();
sFileName = FilenameUtils.getName(sKey) + "-" + sUUID;
}
}
// Write object to /processing/<s3Key>
final AmazonS3 s3 = AmazonS3ClientBuilder.defaultClient();
try {
s3.copyObject(sBucket, sKey, sBucket, "processing/" + sKey + "-" + sUUID);
s3.deleteObject(sBucket, sKey);
} catch (AmazonServiceException e) {
log.debug(e.getErrorMessage());
}
String sfnInput = "{\"S3Bucket\":\"" + sBucket +"\", \"FileName\":\"" + sFileName +"\", \"InputFile\":\"" + "processing/" + sKey + "-" + sUUID +"\"}";
log.debug("Step functions input is : "+sfnInput);
AWSStepFunctions sfnClient = AWSStepFunctionsClient.builder().build();
StartExecutionRequest excReq = new StartExecutionRequest();
excReq.setStateMachineArn(STATE_MACHINE_ARN);
excReq.setInput(sfnInput);
sfnClient.startExecution(excReq);
return null;
}