В улучшении Lambda @ Edge CloudFront есть 4 различных триггерных события.Их взаимодействие с кешем выделено жирным шрифтом и становится важным позже:
- Viewer Request - срабатывает при каждом запросе до проверки кеша по прибытии запроса; самопроизвольно сгенерированный ответ не кэшируется
- Исходный запрос - срабатывает только при пропадании кэша до того, как запрос переходит к источнику; если этот триггер генерирует ответ, HTTP-запрос не отправляется источнику, и ответ будет сохранен в кеше, если кешируется
- Origin Response - срабатывает только при пропадании кеша, когдаответ возвращается из источника до того, как ответ будет проверен на кешируемость и сохранен в кеше; если этот триггер изменяет ответ, то измененный ответ - это то, что хранится в кэше, если кешируется
- Ответ зрителя - срабатывает непосредственно перед возвратом ответа зрителю, независимо от того, был ли кэш попадать или отсутствовать; любые модификации ответа, выполненного этим триггером, не кэшируются
Одна лямбда-функция, правильно написанная для понимания того, где она была запущена в цикле транзакций, может быть запущена в любой момент.комбинация этих точек - но поскольку все эти события происходят в разное время , невозможно обработать более одного события одним вызовом функции триггера.
Однако , обратите внимание на пункты, выделенные жирным шрифтом выше.Во многих случаях вы можете существенно уменьшить количество вызовов триггеров, используя триггеры на стороне источника.Как отмечалось выше, использование этих триггеров приводит к тому, что ответ триггеров кешируется - поэтому, когда срабатывает триггер перенаправления, если он генерирует перенаправление, перенаправление может быть кэшировано, и следующий запрос не должен вызывать триггер ввсе.Точно так же добавление вашего заголовка HSTS к кешируемому ответу в триггере ответа источника означает, что будущие попадания в кеш вернут измененный ответ с заголовками HSTS без срабатывания триггера.