AWS Lambda Service
An AWS Lambda Service is an function as a service (FaaS) that is an AWS service.
- Context:
- It can (typically) be used to manage AWS Lambda Functions.
- It can (typically) be for jobs with Job Last Time of under ~5 minutes.
- It can (typically) be priced/metered in increments of ~100 Milliseconds.
- It can support several Computing Event Triggers.
- It can automatically manage the compute resources required.
- It can support a AWS Lambda Handler Function.
- It can support use cases such as: Image Upload, Responding to Website Clicks, Reacting to Output from a Connected Device, or ...
- …
- Example(s):
- Counter-Example(s):
- See: Lambda Function, Event-Driven Programming, Serverless Computing.
References
2022
- (Wikipedia, 2022) ⇒ https://en.wikipedia.org/wiki/AWS_Lambda Retrieved:2022-4-28.
- AWS Lambda is an event-driven, serverless computing platform provided by Amazon as a part of Amazon Web Services. It is a computing service that runs code in response to events and automatically manages the computing resources required by that code. It was introduced in November 2014. Node.js, Python, Java, Go, Ruby, and C# (through .NET) are all officially supported . In late 2018, custom runtime support was added to AWS Lambda. AWS Lambda supports running native Linux executables via calling out from a supported runtime such as Node.js. For example, Haskell code can be run on Lambda. AWS Lambda was designed for use cases such as image or object uploads to Amazon S3, updates to DynamoDB tables, responding to website clicks, or reacting to sensor readings from an IoT connected device. AWS Lambda can also be used to automatically provision back-end services triggered by custom HTTP requests, and "spin down" such services when not in use, to save resources. These custom HTTP requests are configured in AWS API Gateway, which can also handle authentication and authorization in conjunction with AWS Cognito. Unlike Amazon EC2, which is priced by the hour but metered by the second, AWS Lambda is metered by rounding up to the nearest millisecond with no minimum execution time. In 2019, at AWS' annual cloud computing conference (AWS re:Invent), the AWS Lambda team announced "Provisioned Concurrency", a feature that "keeps functions initialized and hyper-ready to respond in double-digit milliseconds.” The Lambda team described Provisioned Concurrency as "ideal for implementing interactive services, such as web and mobile backends, latency-sensitive microservices, or synchronous APIs."
2016b
- (AWS Lambda, 2016) ⇒ https://aws.amazon.com/lambda/
- QUOTE: AWS Lambda lets you run code without provisioning or managing servers. You pay only for the compute time you consume - there is no charge when your code is not running. With Lambda, you can run code for virtually any type of application or backend service - all with zero administration. Just upload your code and Lambda takes care of everything required to run and scale your code with high availability. You can set up your code to automatically trigger from other AWS services or call it directly from any web or mobile app.
2016c
- (AWS Lambda, 2016) ⇒ https://aws.amazon.com/lambda/faqs/
- QUOTE: Each AWS Lambda function runs in its own isolated environment, with its own resources and file system view. AWS Lambda uses the same techniques as Amazon EC2 to provide security and separation at the infrastructure and execution levels.
2015a
- (AWS Amazon, 2015) ⇒ https://aws.amazon.com/blogs/compute/better-together-amazon-ecs-and-aws-lambda/
- QUOTE: AWS Lambda is a compute service that runs your code in response to events and automatically manages the compute resources for you, making it easy to build applications that respond quickly to new information. Lambda starts running your code within milliseconds of an event such as an image upload, in-app activity, website click, or output from a connected device.
2015b
- (LinkedIn, 2015) ⇒ https://linkedin.com/pulse/amazon-api-gateway-good-bad-ugly-owen-rubel?trk=pulse_spock-articles
- QUOTE:
- The Good:
The Amazon API Gateway is effectively a hosted api 'proxy' service in the cloud handling all the caching and interfacing with a service to build scripts called Lambdas which act as your endpoints.These scripts are 'one-off' end points that cannot use external libraries, cannot extend classes, etc; EVERYTHING is self contained in the 'Lamba' script.
All in all, the idea is clever in that it allows people to easily get API's up and running quickly and easily and (presumably) allows people who don't know how to build API's to set them up. But their are a few issues with the service as it presently exists.
- The Bad:
Bad OOP Practices/KISS : Each Lambda is a separate method and not part of a class, service or project. As such, there is massive duplication of code. They cannot include services, custom libraries or be a part of a class because they are breaking alot of OOP principles to do what they are attempting to do. Normally, these methods would be part of a class which could extend services and use custom libraries/services but because each Lambda has to be 'self-contained', each one has to do all the processing within it's own 'container' making for increased overhead and massive duplication. This also makes it hard to synchronize across the Lambdas as well.
- The Good:
- QUOTE:
2015c
- (AWS Amazon, 2015) ⇒ http://aws.amazon.com/lambda/faqs/
- QUOTE: Amazon EC2 offers flexibility, with a wide range of instance types and the option to customize the operating system, network and security settings, and the entire software stack, allowing you to easily move existing applications to the cloud. With Amazon EC2 you are responsible for provisioning capacity, monitoring fleet health and performance, and designing for fault tolerance and scalability. …
AWS Lambda makes it easy to execute code in response to events, such as changes to Amazon S3 buckets, updates to an Amazon DynamoDB table, or custom events generated by your applications or devices. With Lambda you do not have to provision your own instances; Lambda performs all the operational and administrative activities on your behalf, including capacity provisioning, monitoring fleet health, applying security patches to the underlying compute resources, deploying your code, running a web service front end, and monitoring and logging your code. AWS Lambda provides easy scaling and high availability to your code without additional effort on your part.
- QUOTE: Amazon EC2 offers flexibility, with a wide range of instance types and the option to customize the operating system, network and security settings, and the entire software stack, allowing you to easily move existing applications to the cloud. With Amazon EC2 you are responsible for provisioning capacity, monitoring fleet health and performance, and designing for fault tolerance and scalability. …
2014
- (AWS Amazon, 2014) ⇒ https://aws.amazon.com/blogs/aws/run-code-cloud/
- QUOTE: Today we are launching a preview of AWS Lambda, a brand-new way to build and run applications in the cloud, one that lets you take advantage of your existing programming skills and your knowledge of AWS. With Lambda, you simply create a Lambda function, give it permission to access specific AWS resources, and then connect the function to your AWS resources. 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 is a zero-administration compute platform. You don’t have to configure, launch, or monitor EC2 instances. You don’t have to install any operating systems or language environments. You don’t need to think about scale or fault tolerance and you don’t need to request or reserve capacity. A freshly created function is ready and able to handle tens of thousands of requests per hour with absolutely no incremental effort on your part, and on a very cost-effective basis.
- QUOTE: Today we are launching a preview of AWS Lambda, a brand-new way to build and run applications in the cloud, one that lets you take advantage of your existing programming skills and your knowledge of AWS. With Lambda, you simply create a Lambda function, give it permission to access specific AWS resources, and then connect the function to your AWS resources. 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.