Fresh from unveiling a series of developer tools yesterday, Amazon Web Services today is previewing Amazon Lambda, a new way to build applications and run them in the cloud by leveraging lambda functions.
Related to functional programming, lambdas involve the use of anonymous functions. “With [the Lambda service], you simply create a Lambda function, give it permission to access specific AWS resources and then connect the function to your AWS resources,” said Jeff Barr, AWS chief evangelist, in a blog post. “Lambda will automatically run code in response to modifications to objects uploaded to Amazon Simple Storage Service (S3) buckets, messages arriving in Amazon Kinesis streams, or table updates in Amazon DynamoDB.”
Lambda offers a zero-administration compute platform, so developers don't have to deal with EC2 instances. Functions are written in Node.js; code is uploaded; and context information, specifying the execution environment including language and memory requirements, is specified to Amazon Lambda to create a new function. When a resource changes, Lambda will execute any functions associated with it, including managing compute resources as needed to keep up with incoming requests. “You don't need to worry about this; Lambda will manage the resources for you and will shut them down if they are no longer needed,” Barr said.
Developers can access Lambda from the AWS Management console, as well as from the AWS SDKs or AWS command-line interface. Lambda APIs can be used to connect to existing code editors and other tools. The road map for Lambda includes adding support for more AWS services and other languages. Lambda involves a fine-grained pricing model, with users paying for compute time in units of hundreds of milliseconds. A free tier also is available, including 1 million free requests per month and as many as 3.2 million seconds of compute time per month.