我只是从Kong开始,并在服务上设置Lambda插件来尝试一下。我使用的Lambda函数有一个简单的方法来解析JSON正文:
const getBody = (event: any): IBody => {
const body = JSON.parse(event.body)
return new Body(body)
}
因此,尽管我能够调用该函数并从中获得响应,但我得到的只是一条类似于以下内容的错误消息:
{“状态”:500,“消息”:“ SyntaxError:JSON中的意外令牌u 在位置0“}
答案 0 :(得分:0)
这是由于Lambda请求为different when invoked from the cli and when called from 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)
}