Функция AWS Lambda отключается при первом вызове, работает при втором вызове

Моя функция AWS Lambda, интегрированная с URL-адресом запроса AWS API- Gateway, получает тайм-аут для каждого первого запроса, но работает для следующего запроса.

Примечание. Мы также пытались сохранить Lambdas в тепле, планируя их в CloudWatch, но это не сработало.

2 ответа

Это проблема с холодным стартом.

Вы можете сделать несколько из следующих действий, чтобы улучшить скорость холодного старта,

Если вы используете node.js,

Webpack:

Упакуйте все модули, которые находятся в отдельных файлах, в один файл.

Если вы используете другие языки,

Количество файлов:

Держите количество файлов в меньшем количестве

LazyLoad:

Не загружайте все заранее, ленивую загрузку или загружайте модули при необходимости.

Надеюсь, поможет.

Не зная слишком много о вашем конкретном случае использования, вот два общих предложения:

  1. Увеличьте объем памяти, выделяемой для ваших функций, что также пропорционально увеличивает процессор. Поскольку ваши функции вызываются очень редко, дополнительные затраты на увеличение объема памяти будут уравновешиваться более быстрым временем холодного запуска и, следовательно, меньшим счетом.

  2. Уменьшите размер кода: уменьшите ZIP-файл, удалите ненужные require() в Node.js и т. Д. Например, если вы используете библиотеку Async просто для удаления вложенного обратного вызова, подумайте об отказе от этого, чтобы повысить производительность.

Обратитесь к https://forums.aws.amazon.com/thread.jspa?threadID=181348 за дополнительными параметрами.

Другие вопросы по тегам