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!

已提問 4 年前檢視次數 2195 次
2 個答案
0
已接受的答案

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
已回答 4 年前
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
已回答 2 年前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南