表单 – 使用AWS API Gateway和Lambda从multipart / form-data获取非文件正文

我试图通过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,但由于我对文件不感兴趣,只是正文,这个答案没有帮助.

下面通过runco​​pe找到捕获的帖子的截图(对不起).

解决方法

如果目标是使用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发布

相关文章

操作步骤 1、进入elasticsearch的plugin,进入ik。进入config。 2、在config下面建立以.dic为后缀的字典...
lengend data数据中若存在'',则表示换行,用''切割。
代码实现 option = { backgroundColor: '#080b30', tooltip: { trigger: &...
问题原因 原因在于直接在js中取的变量并复制给var变量。 于是就变成这样。 解决办法 var data = &#...
前言 最近做了一个调查问卷导出的功能,需求是将维护的题目,答案,导出成word,参考了几种方案之后,选...
对于很多人来说,用字符编码都是熟能生巧,而不清楚为什么是那样的字符编码,所以我在这列了一个表,翻...