Câu trả lời:
Hiện tại không thể, hãy xem https://forums.aws.amazon.com/thread.jspa?threadID=162252 để thảo luận về nó.
Chỉnh sửa: Lambda @ Edge đã làm cho nó có thể, xem bên dưới.
Một bản cập nhật về điều này ...
Bây giờ các tiêu đề phản hồi HTTP có thể được tùy chỉnh thông qua các chức năng Lambda @ edge. Vui lòng xem http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-at-the-edge.html để biết tài liệu. Để thử điều này, hãy tạo một hàm lambda mới trong bảng điều khiển AWS. Chọn 'Edge Nodge.js 4.3' cho ngôn ngữ và tìm mẫu tiêu đề đám mây-sửa đổi-phản hồi-tiêu đề. Nếu bạn làm điều này, Lambda sẽ hỏi bạn phân phối và sự kiện CloudFront nào để áp dụng chức năng này. Lưu ý rằng bạn có thể chỉnh sửa hoặc thay đổi điều này bất cứ lúc nào bằng cách chuyển đến tab hành vi Cloudfront.
Đây là một ví dụ chức năng lambda ...
'use strict';
exports.handler = (event, context, callback) => {
const response = event.Records[0].cf.response;
response.headers['Strict-Transport-Security'] = 'max-age=2592000; includeSubDomains';
callback(null, response);
};
Để thêm vào câu trả lời của Andrew:
Tôi vừa thử điều này và một vài lưu ý: Không còn thời gian chạy nodejs cạnh cụ thể nữa, nhưng lambda cần được tạo ở vùng N Virginia và được kích hoạt bởi phản hồi nguồn gốc của đám mây hoặc phản hồi của người xem .
Mã ra khỏi hộp dường như không còn hoạt động nữa. Nó mang lại cho ERR_CONTENT_DECODING_FAILED.
Giải pháp là sử dụng cú pháp json như sau:
response.headers['Strict-Transport-Security'] = [ { key: 'Strict-Transport-Security', value: "max-age=31536000; includeSubdomains; preload" } ];
response.headers['X-Content-Type-Options'] = [ { key: 'X-Content-Type-Options', value: "nosniff" } ];
Đúng, vì Lambda @ Edge thường có sẵn nên họ đã giới hạn nó ở N Virginia và người ta phải chọn Node 6.10 thay vì Node 4.3.
Phần có liên quan của mã của chúng tôi dưới đây (với mục đích của chúng tôi, đây sẽ luôn là một chuyển hướng vĩnh viễn 302):
'use strict';
exports.handler = (event, context, callback) => {
var request = event.Records[0].cf.request;
const response = {
status: '302',
statusDescription: '302 Found',
httpVersion: request.httpVersion,
headers: {
Location: [
{
"key":"Location",
"value":"someURL"
}
],
'Strict-Transport-Security': [
{
"key":"Strict-Transport-Security",
"value":'max-age=63072000; includeSubDomains; preload'
}
],
},
};
callback(null, response);
};
Bằng cách định cấu hình các hành vi khác nhau trên CloudFront, bạn có thể giới hạn các yêu cầu nào sẽ gọi hàm Lambda.