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 官方已更新 1 年前
- AWS 官方已更新 10 个月前
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.