eolas/neuron/0c4abb9b-c940-4636-84e0-b880b7c1ac8b/Restructure_URLs_lambda.md
2025-01-02 18:02:35 +00:00

42 lines
1.3 KiB
Markdown

---
tags:
- AWS
- aws-lambda
---
# AWS Lambda examples
## Reconstruct CloudFront URLs
```js
exports.handler = (event, context, callback) => {
// Extract the request from the CloudFront event that is sent to Lambda@Edge
var request = event.Records[0].cf.request;
// Extract the URI from the request
var olduri = request.uri;
// Match any '/' that occurs at the end of a URI. Replace it with a default index
var newuri = olduri.replace(/\/$/, "/index.html");
// Replace the received URI with the URI that includes the index page
request.uri = newuri;
// Return to CloudFront
return callback(null, request);
};
```
Let's walk through the above example making reference to the general structure
of the
[AWS Lambda handler function](Lambda_handler_function.md):
1. The `event` parameter is invoked to gain access to the event that triggered
the function. This is a CloudFront request event which is targetted with
`event.Records[0].cf.request`
2. We classify this request as the `olduri` since it doesn't have the form we
want.
3. We mutate the original request by replacing `/` with `/index.html`
4. We then re-assign the `request.uri` value to the value of the new URI.
5. Finally we invoke the `callback` parameter to signal the completion of the
transformation and return the new request as the return value.