我试图通过API网关将表单数据从multipart / form-data POST获取到我的ASW Lambda Web服务.
HTTP POST具有Content-Type“multipart / form-data”和URL编码的主体.文件数据也在这篇文章中发送(因此我认为是多部分).
Web服务需要与第三方服务集成,因此更改POST的格式实际上不是一种选择.
我已经看到这个thread谈论将URL编码数据转换为JSON对象以便在Lambda中使用,但这并不能解决问题.
我也尝试过设置集成请求 – >将内容类型multipart / form-data的模板映射到Input passthrough.这也没有帮助.
我确实遇到了另一个关于使用multipart / form-data上传文件的question,但由于我对文件不感兴趣,只是正文,这个答案没有帮助.
下面通过runcope找到捕获的帖子的截图(对不起).
解决方法
如果目标是使用Lambda,则需要将有效的JSON传递给函数.目前,Api Gateway内部的JSON-ify数据无法以非JSON数据的形式出现.
我们的短期修复(在我们的待办事项上)是在映射模板中提供一个变量来获取请求的原始输入.这样你就可以使用如下模板进行简单的JSON转换:
{ "body" : "$input.body" }
或类似的东西.
查看映射模板参考以获取更多信息:http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html
编辑4/7 – 功能已作为$input.body发布