У меня есть очень простая лямбда-функция, которая вызывается AWS API Gateway, и все, что делает лямбда, это просто вызывает AWS SNS для отправки текстового сообщения. Лямбда управляется версиями и настроена с 1 подготовленным параллелизмом со статусом Готово.
Я испытываю задержку холодного старта до 13 секунд при первом вызове версированной лямбды через 20–30 минут.
Ниже приведен журнал шлюза API AWS, в котором подробно указано, сколько времени потребовалось, чтобы получить ответ после вызова лямбда-выражения с поддержкой версий с предоставленным параллелизмом.
Thu Oct 15 19:32:06 UTC 2020 : Sending request to https://lambda.us-west-2.amazonaws.com/2015-03-31/functions/arn:aws:lambda:us-west-2:123456789:function:sms-service-lambda-dev-test-01:3/invocations
Thu Oct 15 19:32:19 UTC 2020 : Received response. Status: 200, Integration latency: 12550 ms
но все последующие вызовы выполняются довольно быстро
Thu Oct 15 19:50:19 UTC 2020 : Sending request to https://lambda.us-west-2.amazonaws.com/2015-03-31/functions/arn:aws:lambda:us-west-2:123456789:function:sms-service-lambda-dev-test-01:3/invocations
Thu Oct 15 19:50:20 UTC 2020 : Received response. Status: 200, Integration latency: 713 ms
Есть идеи, что мне может не хватать?
Вы уверены, что предоставленный параллелизм предназначен для версии 3 вашей функции? — person pahnman schedule 16.10.2020
@Marcin Да, когда я посещаю sms-service-lambda-dev-test-01: 3 (версия 3) в консоли AWS, он отображается как 1 подготовленный параллелизм с зеленым статусом «Готов». — person pahnman schedule 16.10.2020
При просмотре sms-service-lambda-dev-01 (без версий) он также отображает подготовленные конфигурации параллелизма и показывает, что существует один подготовленный параллелизм в квалификаторе 3 версии типа. — person pahnman schedule 16.10.2020
Я вижу то же самое, и здесь есть ряд вопросов, которые ссылаются на нечто подобное. Кто-нибудь что-нибудь узнал об этом? — person pahnman schedule 26.10.2020
Я смог отладить это более детально и обнаружил, что холодный запуск действительно происходит на стороне Amazon SNS.
При использовании dotnet AWS SDK для публикации сообщения в AWS SNS я обнаружил, что первоначальный вызов AWS SNS имеет холодный старт, который занимает около 7 секунд, а все последующие вызовы AWS SNS занимают менее секунды.