Я реализую свой собственный сервис webhooks, который будет отправлять события подписанным webhooks.
Обзор архитектуры:
- события помещаются в очередь SQS
- лямбда-функция запускается сообщениями SQS (сопоставление источника события)
- для каждого события, я выполняю исходящие http-запросы к подписанным веб-заездам
- не-2xx ответы должны быть повторены с экспоненциальным откатом ( в таком случае я изменяю видимость сообщения в полученном сообщении)
- , поскольку лямбды, которые вызываются SQS, автоматически удаляют сообщение по завершении, я выкидываю сообщение об ошибке в конце функции, чтобы предотвратить автомат c delete
Насколько я могу судить, вызов для изменения видимости сообщения завершается успешно. Мне интересно, есть ли что-то еще запеченное в лямбдах, которые вызываются SQS. После отказа от лямбды, это внутренне изменяет видимость сообщения снова? Или же лямбды, которые вызываются SQS, не учитывают изменения видимости сообщений (для меня это не имеет никакого смысла). Любопытно, если у кого-нибудь есть понимание этой проблемы. Я был очень удивлен, обнаружив, что лямбда автоматически удаляет сообщения при успешном завершении, поскольку это делает мой конкретный случай использования немного неуклюжим - выдает ошибку, чтобы не выполнить функцию лямбда, чтобы предотвратить удаление сообщения.
Спасибо заблаговременно!