API Gateway WebSocket обрабатывает ошибки - PullRequest
0 голосов
/ 31 мая 2019

Я устанавливаю приложение веб-сокета с API Gateway.Я настроил ответы маршрута для своих лямбда-функций, поэтому могу обрабатывать эти ответы на стороне клиента.

На своем сервере я возвращаю свой ответ следующим образом:

callback (null, {
  statusCode: 500,
  body: 'Some text.'
})

ВМой клиент Websocket, событие сообщения (onmessage) инициируется этим ответом.

event.data содержит тело ответа из-за ответа интеграции лямбда-прокси.

Однако яне могу найти способ вызвать событие ошибки (onerror), а мой statusCode говорит, что произошла ошибка (500).

Есть ли у вас какие-либо решения?

1 Ответ

0 голосов
/ 03 июня 2019

Обратные вызовы функции AWS Lambda имеют следующую структуру: callback(error, result).

Так что для ошибок вы бы назвали это как callback(error), а для успешного результата callback(null, result).

Итак, вы должны получить в своем приложении ответ об успешном завершении (код состояния 200), который содержит некоторые данные с полем statusCode со значением 500. Таким образом, поскольку это успешный ответ, он не должен вызывать onerror обратный вызов, а точнее всего onmessage.

Мое предложение заключается в том, что вы обрабатываете ответ кода состояния, отличный от 200, также внутри вашего метода onmessage и обработчика onerror для ошибок, отличных от тех, которые вылавливаются и извлекаются из вашей лямбда-функции (например, проблема с AWS Api Gateway, проблема с сетью и т. д.).

...