AWS Lambda offers serverless computing
Serverless computing allows services and applications to be built without the need for servers. Serverless computing allows applications to run on servers while all the server management is handled by AWS.
Lambda allows you to run code without having to provision or manage servers. You pay only for the time that the code is running.
Lambda is priced per-use and there are no fees for code that is not in use.
Lambda allows you to run any type of backend service or application code with zero administration.
Lambda handles all operational and administrative tasks on your behalf. This includes monitoring fleet health, applying security patches, provisioning capacity, monitoring the underlying compute resources, and deploying code. It also runs a web service front-end and monitors and logs the code.
Lambda doesn’t provide access to the underlying compute architecture.
Lambda handles Scalability, availability because it provides easy scaling and high availability to your code without any additional effort.
It is designed to process events in milliseconds.
It is designed to run multiple instances of the function simultaneously.
It is designed to use replication to ensure high availability of both the service as well as the functions it performs.
There are no maintenance windows or scheduled downtimes.
There is a default safety throttle that limits the number of concurrent executions per region per account.
Has a higher latency right after a function has been created or updated or if it hasn’t been used in recent times.
For any function updates, there is a short window of time (less than a minute) when both versions would serve requests.
Securitystores code is stored in S3 and encrypted at rest. Additional integrity checks are performed while the code’s in use.
Each function runs in its own isolated environment with its own resources.
AWS Lambda functions need to be executed within 300 900 seconds. The default timeout is three seconds. You can set the timeout to any time between 1 and 300 900 seconds.
AWS Step Functions are able to coordinate a series Lambda functions in a particular order. Multiple Lambda functions can all be invoked in succession, passing their output to each other and/or in parallel while Step Functions maintain the state.
AWS X-Ray allows you to trace Lambda functions. This provides insight such as service overhead, function execution time, and function init time.
Functions and event sources are the core components of Lambda.
An AWS service or custom app that publishes events is called Event Source.
A function is the custom code that processes events. Lambda Functions
Each function comes with associated configuration information such as its name and description, entry point and resource requirements.
Lambda might choose to keep a copy of the function and repurpose it to meet a subsequent request rather than create a new copy.
Each function has 500MB of non-persistent storage space in its own /tmp directory.
Design Lambda function should be stateless to allow for as many copies as necessary.
Local file system access, child processing, and similar artifacts are not allowed to extend beyond the request’s lifetime.
DynamoDB and S3 can maintain the state externally.
An IAM role can grant permissions to a function to access other resources.
The following restrictions apply to functions
Only TCP/IP sockets can be used for outbound connections
ptrace (debugging system calls) is blocked
As an anti-spam measure, TCP port 25 traffic will also be blocked.
CloudWatch reports real-time metrics through CloudWatch that automatically monitor functions, including total requests and latency, error rates and throttled requests.
Lambda automatically integrates to CloudWatch logs, creating log gr