in src/main/java/software/aws/glue/tableversions/lambda/TableVersionsCleanupLambda.java [44:70]
public String handleRequest(SQSEvent event, Context context) {
String region = Optional.ofNullable(System.getenv("region")).orElse("us-east-1");
String ddbTableName = Optional.ofNullable(System.getenv("ddb_table_name"))
.orElse("glue_table_version_cleanup_statistics");
String hashKey = Optional.ofNullable(System.getenv("hash_key")).orElse("execution_id");
String rangeKey = Optional.ofNullable(System.getenv("range_key")).orElse("execution_batch_id");
int numberofVersionsToRetain = Ints
.tryParse(Optional.ofNullable(System.getenv("number_of_versions_to_retain")).orElse("100"));
System.out.println("Region: " + region);
System.out.println("Number of table versions to retain: " + numberofVersionsToRetain);
System.out.println("DynamoDB Table to track statistics: " + ddbTableName);
AWSGlue glueClient = AWSGlueClientBuilder.standard().withRegion(region).build();
AmazonDynamoDB dynamoDBClient = AmazonDynamoDBClientBuilder.standard().withRegion(region).build();
if (numberofVersionsToRetain < 50) {
throw new RuntimeException();
} else {
System.out.println("Number of messages in SQS Event: " + event.getRecords().size());
List<SQSMessage> sqsMessages = event.getRecords();
processEvent(glueClient, dynamoDBClient, sqsMessages, numberofVersionsToRetain, ddbTableName, hashKey,
rangeKey);
}
return "SNS event to Lambda processed successfully!";
}