Состояние лямбда-функции AWS (zappa)

Я думаю, чтобы оптимизировать лямбда-сервер во флеш-приложении, добавив внутренний кэш для относительно медленного изменения данных (например, выпадающий список сайтов может меняться несколько раз в год). Я использую Zappa для развертывания в Lambda. Есть ли смысл? Или это флэш-память каждый раз, когда запрос обрабатывается. Я знаю, что не могу положиться на состояние сохранения aws, моя цель здесь - немного оптимизировать производительность, не тратя целое состояние на некоторый экземпляр redis, не говоря уже об ElastiCache.

ОБНОВЛЕНИЕ: Да, безсерверные инфраструктуры развертывания, такие как zappa, перерабатывают состояние, так почему я не должен. Ниже в блоге hackernoon обсуждают состояние утилизации более подробно

https://hackernoon.com/write-recursive-aws-lambda-functions-the-right-way-4a4b5ae633b6

Хотя лямбда-функции по своей природе эфемерны, контейнеры по-прежнему используются повторно для оптимизации, что означает, что вы все равно можете использовать состояния в памяти, сохраняющиеся через вызовы.

Не уверен, что можно сделать недействительным такой кеш, переменные env скорее всего локальны для лямбда-экземпляров, http, sns, вероятно, трудный / дорогой.

1 ответ

Да, это не сработает с Lambda.

Вы должны использовать какой-то сторонний кеш.


Если для вас достаточно кэширования только ваших запросов GET, вы можете использовать для этого CDN.

Я лично использую CloudFlare CDN, который кэширует все запросы GET в течение n минут. И вы получаете много запросов бесплатно. Вам просто нужно определить пользовательское правило страницы, чтобы кэшировать все для определенного шаблона URL.

CloudFlare Page Rule

Конечно, то же самое можно сделать с CloudFront (чтобы остаться в экосистеме AWS) или, возможно, с большинством других CDN.

Другие вопросы по тегам