AWS Lambda сбрасывает память при каждом вызове? - PullRequest
1 голос
/ 04 ноября 2019

В настоящее время я использую AWS Lambda в сочетании с Java 8. Насколько я понимаю, AWS Lambda считается изолированной единицей работы, то есть каждый процесс может выполняться изолированно. В этом случае, при повторном использовании контейнера , будет ли JVM или сам контейнер Lambda иметь постоянную память, которую может использовать следующее выполнение? Сбрасывается ли лямбда-память при каждом вызове? Я не могу найти ответ на этот вопрос в документации.

Ответы [ 2 ]

2 голосов
/ 04 ноября 2019

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

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

Дополнительные сведения можно прочитать в Обзор безопасности AWS Lambda white paper.

0 голосов
/ 04 ноября 2019

Лямбда может содержать кэшированные данные из предыдущего вызова, но это не гарантируется, и AWS не предоставляет никакого TTL, когда этот кэшированный будет признан недействительным. Это может быть хорошо, если вам нужно использовать одни и те же данные снова и снова во всех вызовах. Однако, если вам конкретно требуется новый вызов, убедитесь, что вы сбрасываете переменные кэша / сброса и т. Д. В качестве первого шага своей функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...