3개 답변
- 최신
- 최다 투표
- 가장 많은 댓글
1
Hi Simon,
Lambda@Edge allows you to run Lambda functions to customize the content delivered through your CloudFront distribution.
Example of a Node.js Lambda@Edge function:
'use strict';
exports.handler = (event, context, callback) => {
const response = event.Records[0].cf.response;
const headers = response.headers;
// only modify HTML content !!
if (headers['content-type'] && headers['content-type'][0].value.includes('text/html')) {
let body = response.body;
// generate a nonce value - you could generate a dynamic value
const nonce = 'generatedNonceValue';
// replace the placeholder in the body then update it
body = body.replace('<!-- NONCE_PLACEHOLDER -->', `<script>var nonce = "${nonce}";</script>`);
response.body = body;
}
// return
callback(null, response);
};
Hope this helps.
답변함 2달 전
0
Hi,
is it for lambda node v16, v18 or v20? and after make, i pout in Viewer request, Viewer response, Origin request or Origin response in cloudfront?
Regards
답변함 2달 전
관련 콘텐츠
- AWS 공식업데이트됨 2년 전
- AWS 공식업데이트됨 일 년 전
- AWS 공식업데이트됨 일 년 전
For modifying HTML with Lambda@Edge, you can use Node.js versions 14.x or 16.x. Deploy the Lambda function to trigger on the Viewer Response or Origin Response events in CloudFront. If you encountered a 503 error, it might be due to handling large bodies or CloudFront limitations. Ensure your function doesn't exceed Lambda's memory and time limits, and check CloudWatch Logs for errors.