Краткий обзор.
Я размещаю Angular Application на S3 Bucket. Я также получил дистрибутив Cloudfront для обработки HTTPS и перенаправлений.
Я пытаюсь сформировать параметр строки запроса в зависимости от того, к какому URL-адресу подключается пользователь.
2 примера
test.example.com --> example.com?id=test
hello.example.com --> example.com?id?hello
До сих пор я пытался реализовать AWS lambda @ Edge Function , но пока ничего не получалось. Если я пытаюсь манипулировать request
, он не будет иметь никаких эффектов, если я пытаюсь манипулировать response
, перенаправление не работает, и я получаю ошибку корзины S3 или Cloudfront.
'use strict';
const remove_suffix = '.example.com';
exports.handler = (event, context, callback) => {
const request = event.Records[0].cf.request;
const headers = request.headers;
const host_header = headers.host[0].value;
if(host_header.endsWith(remove_suffix)){
request.querystring = 'id=' + host_header.substring(0,host_header.length - remove_suffix.length);
}
return callback(null,request);
};
1) Какой триггер мне использовать?
2) Какие настройки я мог бы пропустить в настройках Cloudfront?
3) Не работает ли моя лямбда-функция?