Служба Kong с запросом POST к функции Lambda и полезной нагрузкой JSON - PullRequest
0 голосов
/ 05 декабря 2018

Я только начинаю с 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"}

1 Ответ

0 голосов
/ 05 декабря 2018

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

В основном event.body доступен только при вызове из APIGateway, хотя при вызове из 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)
}
...