我有一个lambda函数,可以接收许多不同形式的JSON。这个想法是通过API网关接收的。当我测试给定任何形式的JSON的函数时,它工作正常。但是,当我尝试通过API网关对其进行测试时,它失败了,因为该事件为空。
我试图添加一个空的模型映射:
{}
但是我仍然得到相同的结果。如何使API将主体中的任何JSON类型传递给函数?
谢谢!
编辑
我想使用Lambda代理集成,并且已经在AWS控制台中使用邮差和API网关测试功能进行了测试。我正在做一个POST,其中的正文和内容类型标头为必需的JSON。
答案 0 :(得分:3)
您不需要响应模型。
在API网关中使用lambda代理时,您会以特定格式(https://serverless.com/framework/docs/providers/aws/events/apigateway/#example-lambda-proxy-event-default)的形式获取数据,以获取完整的详细信息。
与直接调用handler(event, ctx, callback)
函数使您只需执行const payload = event
来获取要测试的数据不同;您将需要执行const payload = JSON.parse(event.body)
,因为event
参数包含有关完整http请求的大量信息。