Я работаю над проектом, и мне нужно запускать прокси-API при получении сообщения службой AWS SQS. Я просмотрел пару статей и обнаружил, что API для SQS возможен, но не нашел ...

1
Learner 5 Янв 2021 в 22:30

1 ответ

Лучший ответ

Невозможно вызвать функцию Lambda асинхронно с интеграцией прокси. Вы можете сделать это с помощью интеграции Lambda без прокси.

Настройте асинхронный вызов бэкэнд-функции Lambda - https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-integration-async.html

Другой обходной путь - использовать другую функцию, которая вызывается синхронно API шлюза API, и заставить эту функцию вызывать функцию, которая является частью приложения Spring boo, асинхронно с использованием Lambda Invoke API или эквивалента SDK. https://docs.aws.amazon.com/lambda/latest/ dg / API_Invoke.html

Например, вы хотите, чтобы функция A вызывалась асинхронно. Для этого API-интерфейс шлюза API должен вызывать функцию B синхронно, а функция B - асинхронно вызывать функцию A с API-интерфейсом Invoke.

Пошаговые функции также нельзя использовать в качестве обходного пути для вызова REST API, поскольку это не поможет. Функции Lambda по-прежнему вызываются API-интерфейсом API Gateway, поэтому вы все равно столкнетесь с ограничением интеграции прокси-сервера, неспособным вызывать Lambda асинхронно. Затем вы решили, что ECS лучше подойдет для вашего случая, поскольку Lambda не подходит.

1
Learner 21 Янв 2021 в 19:33