Рейтинг:0

Кэш шлюза API каждый час

флаг br

Мой API настроен следующим образом:

Шлюз API > Лямбда-функция > S3

Каждый час контент S3 обновляется одновременно. Как настроить шлюз API для кэширования ответов конечной точки, но каждый час обслуживать новый контент?

Например

  • запрос на получение в 12:15 должен использовать кешированный контент с 12:00.
  • запрос на получение в 12:55 должен использовать кешированный контент с 12:00.
  • запрос на получение в 13:01 должен использовать кешированный контент с 13:00.

Ведро s3 имеет путь для каждого часа, то есть my_bucket/2021/10/12/12:00, так что, может быть, это может помочь?

Рейтинг:1
флаг cn

Вы можете проверить эту команду, чтобы очистить кеш шлюза API, и выполнить ее после завершения загрузки. Однако я не проверял это на себе.

https://docs.aws.amazon.com/cli/latest/reference/apigateway/flush-stage-cache.html

Tim avatar
флаг gp
Tim
Запланированное событие Cloudwatch Events (например, задание cron для AWS), вызывающее лямбда-функцию, которая очищает кеш с помощью вызова API, описанного выше, вероятно, сработает. Звучит сложно, но на самом деле все довольно просто. Cron -> лямбда -> вызов API
Erik Norman avatar
флаг cn
Почему бы не вызвать функцию, когда загрузка завершена? Это обеспечит очистку кеша именно тогда, когда будут доступны обновленные данные.
Tim avatar
флаг gp
Tim
Да, это было бы лучше, если бы это было практично.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.