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!

gefragt vor 4 Jahren2195 Aufrufe
2 Antworten
0
Akzeptierte Antwort

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
beantwortet vor 4 Jahren
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
beantwortet vor 2 Jahren

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen