Состояние лямбда-функции 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.
Конечно, то же самое можно сделать с CloudFront (чтобы остаться в экосистеме AWS) или, возможно, с большинством других CDN.