Функции AWS Lambda: Будут ли различные триггеры повторно использовать среду извлечения?

#amazon-web-services #aws-lambda

Вопрос:

Вот что я знаю или думаю, что знаю.

В AWS Lambda первый вызов функции обычно называется «холодным запуском» — это сродни первому запуску вашей программы.

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

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

Также возможно иметь одну функцию AWS Lambda с несколькими триггерами. Вот пример одной функции, которая обрабатывает как запросы шлюза API, так и сообщения SQS.

изображение консоли AWS Lambda со шлюзом API и SQS, настроенными в качестве триггеров

Мой вопрос: Будет ли AWS Lambda повторно использовать (теплый запуск) среду выполнения при появлении различных триггеров событий? Или у каждого триггера события будет свой собственный холодный запуск? Или такое поведение не гарантируется Лямбдой?

Ответ №1:

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

Вы можете проверить это, выполнив свой Lambda с помощью двух типов триггеров (т. Е. Шлюза API и просто функции тестирования на консоли Lambda) и просмотрев журналы CloudWatch. Каждый Лямбда-контейнер создает свой собственный поток журналов внутри группы журналов вашей Лямбды. Вы должны увидеть, что оба журнала событий переходят в один и тот же поток журналов, что означает, что 2-е событие успешно использует теплый контейнер, созданный первым событием.