node.js - 带有对 Lambda 函数和 JSON 有效负载的 POST 请求的 Kong 服务
问题描述
我刚开始使用 Kong 并在服务上设置一个 Lambda 插件来尝试。我使用的 Lambda 函数有一个简单的方法来解析 JSON 正文:
const getBody = (event: any): IBody => {
const body = JSON.parse(event.body)
return new Body(body)
}
因此,尽管我能够调用该函数并从中获得响应,但我得到的只是一条类似于以下内容的错误消息:
{"status":500,"message":"SyntaxError: 位置 0 处 JSON 中的意外标记 u"}
解决方案
这是因为从 cli 调用和从 AWS API Gateway 调用时 Lambda 请求是不同的。
基本上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)
}
推荐阅读
- python - 无法将 .csv 文件导入为 H2O 数据框
- mysql - Sequelize 'hasMany' 关联(模型)计数在查询执行中的属性
- java - 带有 Spring Boot 类/接口的 Jersey 无法实例化,将被忽略
- python - 在 Python 3 中查找用户输入的猜测数字
- android - 安卓自定义开关
- excel - Excel IF(AND) Statements
- parameters - 在调用的子测试之间传播 ALM 参数
- reactjs - 根据多个值减少数组
- c# - C# WPF - 动态改变单元格颜色
- java - 为什么 JNA 没有将 char** 映射到 String[]?