Lambda@Edge
Last updated
Last updated
Lambda@Edge is an extension of AWS Lambda, a compute service that lets you execute functions that customize the content that CloudFront delivers.
You can author Node.js or Python functions in one Region, US-East-1 (N. Virginia), and then execute them in AWS locations globally that are closer to the viewer, without provisioning or managing servers.
Lambda@Edge scales automatically, from a few requests per day to thousands per second.
Processing requests at AWS locations closer to the viewer instead of on origin servers significantly reduces latency and improves the user experience.
When you associate a CloudFront distribution with a Lambda@Edge function, CloudFront intercepts requests and responses at CloudFront edge locations.
You can execute Lambda functions when the following CloudFront events occur:
When CloudFront receives a request from a viewer (viewer request)
Before CloudFront forwards a request to the origin (origin request)
When CloudFront receives a response from the origin (origin response)
Before CloudFront returns the response to the viewer (viewer response)
A Lambda function can inspect cookies and rewrite URLs so that users see different versions of a site for A/B testing.
CloudFront can return different objects to viewers based on the device they're using by checking the User-Agent
header, which includes information about the devices.
For example, CloudFront can return different images based on the screen size of their device.
For example, on a retail website that sells clothing, if you use cookies to indicate which colour a user chose for a jacket, a Lambda function can change the request so that CloudFront returns the image of a jacket in the selected colour.