Сервис Kong с запросом POST к функции Lambda и полезной нагрузкой JSON

Я только начинаю с Kong и устанавливаю плагин Lambda на сервисе, чтобы опробовать его. У используемой мной лямбда-функции был простой метод анализа тела JSON:

const getBody = (event: any): IBody => {
  const body = JSON.parse(event.body)
  return new Body(body)
}

Итак, хотя я смог вызвать функцию и получить от нее ответ, все, что я получил, это сообщение об ошибке, подобное следующему:

{"status": 500, "message": "SyntaxError: неожиданный токен u в JSON в позиции 0"}


person dmmd    schedule 05.12.2018    source источник


Ответы (1)


Это связано с тем, что лямбда-запрос отличается при вызове из консоли и при вызове из AWS API Gateway.

Обычно event.body доступен только при вызове из шлюза API, тогда как при вызове из cli правильное имя свойства - event.request_body.

Таким образом, изменение метода на метод, приведенный ниже, позволит мне принимать вызовы как от AWS API Gateway, так и от cli:

const getBody = (event: any): IBody => {
  const body = JSON.parse(Object.is(event.request_body, undefined) ? event.body : event.request_body)
  return new Body(body)
}
person dmmd    schedule 05.12.2018