Using Lambda@Edge to alter HTML

0

A customer is hosting static HTML on S3 and is looking to user Lambda@Edge to add meta tags dynamically.

Is this an appropriate use case for Lambda@Edge or do we have other tools that could be a good fit?

Thanks!

asked 4 years ago2180 views
2 Answers
0
Accepted Answer

I do not believe it is feasible to modify the body of HTTP response in Lambda@Edge response triggers. See the documentation below:

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-updating-http-responses.html

When you’re working with the HTTP response, Lambda@Edge does not expose the HTML body that is returned by the origin server to the origin-response trigger.

profile picture
answered 4 years ago
0

I just want to provide an updated answer to this question. Using a Lambda@Edge origin response function, you can fetch the current html file from S3 and load it into a variable. From there you can modify the payload and then reset it as a new payload. Here is a simple example of fetching the file from S3, but you would still need to write something to modify the payload.

 https.get(`https://bucketname.s3.amazonaws.com/index.html`, (res) => {
            res.on('data', (d) => {
                let file = decoder.write(Buffer.from(d, 'base64'));
                response.status = '200';
                response.statusDescription = "OK";
                response.body = file;
                return response;
            });
        }).on('error', (e) => {
            console.error(e);
        });
profile pictureAWS
answered 2 years ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions