Я использую NodeJS6.10 в своих лямбда-функциях. Моя функция создает экземпляр объекта как часть кода, и в конструкторе моего объекта я пишу в файл журнала.
Кажется, что последующие вызовы одной и той же лямбда-функции не вызывают конструктор объекта. Это как если бы оно как-то кешировалось. Я вижу журнал конструктора только один раз.
Время от времени кажется, что срок действия кеша истекает, и следующий вызов Lambda БУДЕТ вызывать конструктор объекта.
Это нормально? Как я могу контролировать такое кеширование?
Спасибо
К сожалению, я не могу поделиться кодом, но могу сказать, что рассматриваемый объект действительно глобальный ... Сделаю некоторые чтения по этому поводу. Спасибо
Благодаря вашим комментариям я нашел это: medium.com/tensult/…





Оказывается, у Lambda есть собственный кеш для глобальных переменных. Поскольку рассматриваемые объекты были созданы в глобальной области, они обслуживаются из кеша Lambda, и конструктор не вызывается.
Проверь это: https://medium.com/tensult/aws-lambda-function-issues-with-global-variables-eb5785d4b876
Могу я увидеть пример кода? Лямбды при первом запуске холодные и создают все, если другой запрос попадает в ту же самую лямбду и имеет глобальные или статические переменные, я считаю, что они все еще будут в памяти.