将事件从API网关传递到Lambda

时间:2018-10-13 02:52:36

标签: amazon-web-services aws-lambda api-gateway

我有一个lambda函数,可以接收许多不同形式的JSON。这个想法是通过API网关接收的。当我测试给定任何形式的JSON的函数时,它工作正常。但是,当我尝试通过API网关对其进行测试时,它失败了,因为该事件为空。

我试图添加一个空的模型映射:

{}

但是我仍然得到相同的结果。如何使API将主体中的任何JSON类型传递给函数?

谢谢!

编辑

我想使用Lambda代理集成,并且已经在AWS控制台中使用邮差和API网关测试功能进行了测试。我正在做一个POST,其中的正文和内容类型标头为必需的JSON。

enter image description here

1 个答案:

答案 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请求的大量信息。