Возвращаемое значение из SQS, которое запускает лямбда-функцию с использованием aws java sdk

Я создал SQS Queue и сопоставление источника событий, которое запускает лямбда-функцию при получении сообщения. Все это прекрасно работает и я делаю через aws java sdk.

Теперь я хочу вернуть значение из функции Lambda. Как я смогу получить к нему доступ, поскольку я вызываю функцию Lambda только через SQS. Любая помощь приветствуется

Ниже приведена структура моего метода обработчика:

public String handleRequest(SQSEvent event, Context context) {
.....
....
return "something"
}

person Zara    schedule 10.05.2019    source источник


Ответы (1)


Это невозможно, так как отправка сообщения в Amazon SQS завершается после отправки сообщения. Это позволяет использовать очередь для отделения сервисов. На самом деле сообщение может находиться в очереди SQS до 14 дней.

Хотя очередь SQS очень быстро активирует функцию AWS Lambda, по-прежнему не существует понятия «возвратного» значения из функции Lambda, если она активируется из сообщения SQS.

Если вы хотите запустить Lambda и дождаться ответа, вы можете напрямую вызвать функцию Lambda и дождаться ответа. Это не будет связано с использованием SQS.

person John Rotenstein    schedule 11.05.2019
comment
Спасибо за ответ. Теперь мне ясно, что невозможно ожидать возвращаемого значения от сообщения отправки SQS. - person Zara; 11.05.2019
comment
Мне нужен SQS для развязки. У меня есть лямбда-функция, которая запускает ec2 и развертывается через пользовательские данные. Я хочу вызвать это через компьютер, которому я мог бы предоставить учетные данные, у которого есть только доступ к отправке сообщений SQS. Я пытался проверить, могу ли я получить от него идентификатор экземпляра. - person Zara; 11.05.2019
comment
@Zara Есть и другие альтернативы, которые следует использовать для получения входных данных (а не путем их возврата из этой лямбды), в основном эта лямбда должна записывать / подключать необходимые средства к чему-то вроде другого SQS / SNS, хранилища, такого как S3 или БД. Возвращаемые значения Lambda необходимы SQS для определения успеха вызова Lambda (чтобы решить, следует ли повторить это сообщение или нет). - person 0xc0de; 11.09.2019
comment
Исправление: сообщение может находиться в очереди SQS максимум 14 дней, а не (более 1) лет. - person 0xc0de; 11.09.2019