One of the most significant enhancements for AWS Simple Storage Service (S3) is the release of AWS S3 Object Lambda. In case you were wondering what Lambda is, Lambda is the 11th letter of the Greek alphabet. In the programming world, a Lambda function is a small anonymous function or block of code that can be passed as an argument to a function call. In the case of AWS S3, Lambda functions can alter the way data is surfaced from an S3 object.
Data stored in S3 is typically shared by multiple applications. Previously, there were two main options to provide different views of S3 data to different applications. You could either create and maintain derivative copies of the data or you could build and manage a proxy layer in front of S3 to intercept and process data as it is requested. Both of these options add significant complexity and costs.
AWS S3 Object Lambda solves this problem by allowing you to add your own code to process the data retrieved from AWS S3 before it is returned to the application. AW S3 Object Lambda functions can process and transform your data as it is being retrieved from S3. The Lambda functions are invoked in-line with a standard S3 GET request so there are no changes required by any application code. This enables you to present multiple views based on the same dataset. You can change the Lambda functions completely independently from the underlying data.
S3 Object Lambda has an incredibly diverse range of possible applications. Some of the things that you could use it for include:
You can find out more about AWS S3 Object Lambda at Introducing Amazon S3 Object Lambda – Use Your Code to Process Data as It Is Being Retrieved from S3. If you want some hands-on experience, Amazon offers a tutorial at Tutorial: Use an Amazon S3 trigger to invoke a Lambda function