Kong 服务 POST 对 Lambda 函数的请求和 JSON 负载

Kong service with POST request to Lambda function and JSON payload

我刚开始使用 Kong 并在服务上设置 Lambda 插件来尝试一下。我使用的 Lambda 函数有一个简单的方法来解析 JSON 正文:

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

因此,尽管我能够调用该函数并从中获得响应,但我得到的只是一条类似于以下内容的错误消息:

{"status":500,"message":"SyntaxError: Unexpected token u in JSON at position 0"}

这是因为 Lambda 请求是

基本上 event.body 仅在从 API 网关调用时可用,而当从 cli 调用时,正确的 属性 名称是 event.request_body.

所以将方法修改为下面的方法将允许我接收来自 AWS API 网关和 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)
}