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年前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ