#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:
Существует несколько методов решения проблем с холодным запуском в лямбда-функциях:
- Используйте выделенный параллелизм. Это добавляет дополнительные затраты, но это должно помочь вашей проблеме. https://aws.amazon.com/blogs/aws/new-provisioned-concurrency-for-lambda-functions /
- Вызовите функцию до того, как AWS ее выгрузит. Вы можете установить для этого будильник CloudWatch или использовать плагин, если вы используете что-то вроде бессерверной фреймворк. https://www.serverless.com/blog/keep-your-lambdas-warm
Удачи!