Я пишу простую систему мониторинга для одной из наших существующих производственных систем. Отслеживаемая система является шлюзом SMPP. Основным требованием является отправка сообщения на шлюз SMPP с заданной частотой и получение сообщения через веб-перехватчик. Это делается для того, чтобы гарантировать, что шлюз SMPP работает должным образом, в противном случае будут срабатывать оповещения по электронной почте.
Это поток моей программы:
Я внедрил эту систему в AWS Lambda и назначил эластичный IP-адрес, поместив функцию Lambda внутри VPC. Я могу отправить сообщение на шлюз SMPP, и шлюз пытается ответить через веб-перехватчик. Но, к сожалению, сервер не может связаться с прослушивателем веб-хука через указанный эластичный IP-адрес. Я поискал и понял, что одним из способов реализации прослушивателя веб-хуков в AWS Lambda является использование триггера шлюза API. Это не используется, потому что это не гарантирует, что тот же экземпляр Lambda, который отправил сообщение через SMPP, получит запрос веб-перехватчика.
Итак, мой вопрос: можно ли запустить прослушиватель веб-хуков в AWS Lambda и получать запросы через подключенный эластичный IP-адрес?
Привет. Он находится в сети в течение определенного периода (5 минут). В течение этого периода он прослушивает определенный веб-хук. Я хочу знать, могу ли я получить доступ к лямбде «онлайн», вызвав URL-адрес веб-хука?
Я думаю, что Майкл был в точку, функции Lambda не созданы для такой работы. Может быть, точечный экземпляр ec2 (или экземпляр по запросу, который вы включаете и отключаете из лямбда-функции) может соответствовать тому, что вы пытаетесь сделать.





Нет, невозможно запустить прослушиватель веб-перехватчиков в AWS Lambda и получать запросы через подключенный эластичный IP-адрес.
Функции Lambda внутри VPC отправляют исходящие запросы в Интернет, используя эластичный IP-адрес, подключенный к шлюзу NAT, через ENI, связанный с хостом контейнера. Ни ENI, ни EIP не привязаны исключительно к одному единственному вызову Lambda. Функциям Lambda технически разрешено прослушивать входящие соединения... но они никогда не поступят через ENI, а шлюз NAT также специально разработан, чтобы не позволять соединениям, инициированным извне, возвращаться обратно. слои дизайна, которые мешают тому, что вы пытаетесь сделать таким образом.
Спасибо, я разделил свои обязанности на несколько функций Lambda и использовал шлюз API для прослушивания вызовов веб-перехватчиков, а также использовал DynamoDB для поддержания состояния.
Я не уверен, правильно ли я понял вопрос, хотите ли вы иметь лямбда-функцию онлайн и слушать веб-хук? Он онлайн в определенное время или всегда?