将事件从 API 网关传递到 Lambda
Passing event from API gateway to Lambda
我有一个 lambda 函数,可以以多种不同的形式接收 JSON。我们的想法是通过 API 网关接收它。当我测试给定任何形式的 JSON 的函数时,它工作正常。但是,当我尝试通过 API 网关对其进行测试时,它失败了,因为事件为空。
我尝试添加一个空模型映射:
{}
但我仍然得到相同的结果。如何让 API 将 body 中的任何类型的 JSON 传递给函数?
谢谢!
编辑
我想使用 Lambda 代理集成,并且我在 AWS 控制台中使用邮递员和 API 网关测试功能进行了测试。我只是用 body 中所需的 JSON 和内容类型 headers.
做一个 POST
您不需要响应模型。
当您在 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 请求的更多信息。
我有一个 lambda 函数,可以以多种不同的形式接收 JSON。我们的想法是通过 API 网关接收它。当我测试给定任何形式的 JSON 的函数时,它工作正常。但是,当我尝试通过 API 网关对其进行测试时,它失败了,因为事件为空。
我尝试添加一个空模型映射:
{}
但我仍然得到相同的结果。如何让 API 将 body 中的任何类型的 JSON 传递给函数?
谢谢!
编辑
我想使用 Lambda 代理集成,并且我在 AWS 控制台中使用邮递员和 API 网关测试功能进行了测试。我只是用 body 中所需的 JSON 和内容类型 headers.
做一个 POST您不需要响应模型。
当您在 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 请求的更多信息。