Кэш шлюза API не работает

Как включить правильное кэширование для конечной точки шлюза API?

Я включил кеширование API (см. скриншот), но когда я запрашиваю URL-адрес, время отклика остается таким же, как и раньше.

Я попытался включить опцию кеша API:

Опция кэширования

И настроил заголовок Cache-Control:

Заголовок Cache-Control

А также включил кеширование по параметру запроса:

Кэш параметров запроса


person katspaugh    schedule 11.11.2015    source источник
comment
Какой у вас бэкенд интеграции? Есть ли у вас возможность просматривать журналы, чтобы узнать, вызывался ли ваш сервер, когда должно происходить кэширование?   -  person Bob Kinney    schedule 21.11.2015
comment
Бэкэнд — это лямбда.   -  person katspaugh    schedule 13.01.2016


Ответы (2)


Кэширование в API Gateway не реализовано через CloudFront. Шлюз API создает дистрибутив CloudFront от вашего имени при создании API, но кэширование на самом деле реализуется с использованием выделенной инфраструктуры кэширования. Даже при включенном кэшировании вы будете продолжать видеть заголовки «промаха кэша» из CloudFront.

person Bob Kinney    schedule 19.11.2015
comment
Привет, Боб, спасибо за исправление. Так вы говорите, что X-Cache: Miss from cloudfront не является индикатором неработающего кеша? - person katspaugh; 20.11.2015
comment
@katspaugh Да, именно это я и говорю. - person Bob Kinney; 20.11.2015
comment
Дело в том, что время отклика также кажется одинаковым с включенным кешем API или без него. Думаю, мне нужно перефразировать вопрос. - person katspaugh; 21.11.2015
comment
@katspaugh, сколько времени занимает ваша интеграция? Шлюз API несет некоторые накладные расходы. - person Bob Kinney; 21.11.2015
comment
@BobKinney Итак, как кто-то подтверждает, что ответ извлечен из кеша шлюза API? - person Joshua Robinson; 26.11.2018
comment
@JoshuaRobinson Это зарегистрировано в CloudWatch, но в настоящее время в ответе нет указаний. - person Bob Kinney; 27.12.2018

Я обнаружил, что форум AWS предоставил дополнительную информацию, если это поможет кому-то еще.

https://forums.aws.amazon.com/thread.jspa?threadID=195290#646425

Шлюз API незаметно интегрируется с CloudFront. Мы автоматически создаем глобальную раздачу CloudFront для ваших API, чтобы уменьшить задержку, воспринимаемую конечными пользователями. Однако кэш шлюза API обрабатывается в регионе, где работает шлюз API и развернут ваш API. Запросы принимаются точкой присутствия CloudFront, а затем отправляются на шлюз API в исходном регионе, где шлюз API проверяет свой кэш и, если возможно, возвращает кешированный ответ. На данный момент API Gateway не использует кэш CloudFront на периферии.

person singh1469    schedule 13.01.2016