将事件从 API 网关传递到 Lambda

rod*_*ocf 4 amazon-web-services aws-lambda api-gateway

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

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

{}
Run Code Online (Sandbox Code Playgroud)

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

谢谢!

编辑

我想使用 Lambda 代理集成,并且我在 AWS 控制台中使用邮递员和 API 网关测试功能进行了测试。我只是在主体和内容类型标头中使用所需的 JSON 执行 POST。

在此处输入图片说明

tho*_*ace 7

您不需要响应模型。

当您在 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 请求的更多信息。