Более 1 секунды холодного запуска в нашей фронтальной лямбде

#node.js #aws-lambda #cold-start

#node.js #aws-lambda #холодный запуск

Вопрос:

недавно мы заметили, что в нашей функции, ориентированной на клиента (lambda, которая используется APIGW) на нашей платформе, мы испытываем проблемы с ~1s холодным запуском. Это очень много для нас, и мы пытаемся бороться с этим.

REPORT RequestId: 2545824b-66a3-44d2-871d-0abd7b5aa468 Duration: 213.83 ms Billed Duration: 300 ms Memory Size: 512 MB Max Memory Used: 91 MB Init Duration: 1059.00 ms

Технические детали:

  • Мы используем nodejs v12.
  • Мы уже пытались уменьшить размер пакета и использовать Layer для зависимостей (не очень помогло).
  • Сам лямбда-код просто запрашивает некоторую форму данных DyanmoDB, анализирует ее и возвращает нашим пользователям

Есть какие-нибудь предложения по улучшению задержки? Какие-нибудь обходные пути?

Комментарии:

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

Ответ №1:

Существует несколько методов решения проблем с холодным запуском в лямбда-функциях:

  1. Используйте выделенный параллелизм. Это добавляет дополнительные затраты, но это должно помочь вашей проблеме. https://aws.amazon.com/blogs/aws/new-provisioned-concurrency-for-lambda-functions /
  2. Вызовите функцию до того, как AWS ее выгрузит. Вы можете установить для этого будильник CloudWatch или использовать плагин, если вы используете что-то вроде бессерверной фреймворк. https://www.serverless.com/blog/keep-your-lambdas-warm

Удачи!