我试图让用户将图片上传到lambda函数进行处理;使用网关API接口。
我试图为我的POST方法指定一个模型,但到目前为止我一直收到错误
指定的模型无效:验证结果:警告:[],错误:[指定的模型架构无效]
......没那么有帮助。
据我所知,我不能直接将原始数据发送到lambda,并且必须在中间使用某种格式。
我的理解是我可以让网关接口base64为我编码数据。
我尝试使用以下内容类型为image / jpeg
的模型架构{
"body" : $util.base64Encode($input.body)
}
如何发送图片?
答案 0 :(得分:2)
如您所见,API网关中没有二进制数据的本机支持。我们正在努力解决这个问题,但我没有为您提供ETA。有些客户已经成功地对您的问题中的数据进行了编码,只有它应该位于集成请求不方法请求中的映射模板中。
如果将内容类型设置为image / jpeg,则只有当传入请求中的Content-Type标头也是image / jpeg时,编码才会应用,因此请务必进行设置。
您还可以通过设置“请求正文直播”来拒绝对不发送正确内容类型的方法的传入请求。 (API中的passthroughBehavior)到建议值("没有定义模板"或者' WHEN_NO_TEMPLATES'在API中)
直通行为的文档 - > https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/#passthroughBehavior
答案 1 :(得分:1)
由于看起来使用二进制数据和API网关很复杂,我认为你应该: