AWS Step Функции в качестве принятого ответа являются отличным вариантом (и, вероятно, наилучшим для конкретных требований). Тем не менее, я просто хотел отметить, что вы можете сделать это с SQS и отложенными событиями, которые запускают лямбда-функцию.
Примечание: Максимальное время составляет 15 минут для тех, кто хочет получить больше, чем 3,5 минуты ОП ищет.
Вы также можете сделать Вызов другой лямбда-функции с Event
для InvocationType
(асинхронный вызов). Это позволяет запускать после того, как пользователю отправили ответ, но очевидно, что действия вторичной лямбды должны быть полностью изолированы, так как мы не можем вернуть ответ пользователю от нее. Это определенно не правильное решение для OP, так как нет причин платить 3,5 минуты времени запуска лямбды, чтобы он ничего не делал, но шаблон может быть чрезвычайно полезным.
Я использую шаблон asyncInvoke
, когда у меня есть обработка в vpc, которая должна быть выполнена, и я не хочу, чтобы пользователь имел дело с ужасным холодным стартом 10 с VPC для лямбды, когда это не является необходимым / подключенная часть запроса.
Примечание: Если вы используете любой из вышеперечисленных методов, весьма рекомендует установить Очередь мертвых писем для лямбда-функции, поскольку асинхронные вызовы повторят выполнение несколько раз, когда не удалось.
В любом случае, не отвлекайте от лучшего ответа, основанного на потребностях ОП, но подумал, что может быть полезно увидеть, какие другие возможности могут быть для других, которые случаются на посту!