Amazon Lambda Java函数将png返回到API网关



我需要从Amazon Lambda Java函数向Amazon Rest API返回PNG。我已经用这样一个函数原型构建了这个函数:

public static void generatePng(InputStream request, OutputStream response, Context context) 

InputStream请求详细说明了需要写入图像的信息。OutputStream响应是返回的内容,是一个png图像。我已经测试了代码,并且知道编码到输出流中的图像是正确的,因为我的测试将其写入到我可以在图像编辑器中看到的文件中。

我遇到的问题是Lambda函数到API网关的响应连线。文档只讨论字符串响应,但我的响应负载是二进制图像数据。

在Lambda集成响应中,我尝试添加以下的头映射:

Content-Length integration.response.header.Content-Length
内容类型集成.response.header.Content-Type

以及身体映射:内容类型:image/png,模板为$input.body

我还在方法响应部分添加了image/png的响应模型。

在测试API时,对API调用的响应没有显示图像,而是以正确的png标题开始的图像的字符串转储:

例如:响应体

 ?PNG

 IHDR?
 ??~LIDATx? ...     

响应标头确实显示:{"内容类型":"image/png"}

有人知道如何配置Amazon API网关以接受图像作为lambda函数调用的输出并将其正确地呈现回调用方吗?

API网关不支持二进制数据-https://forums.aws.amazon.com/search.jspa?objID=f199&q=二进制&x=0&y=0.

您可以考虑在映射模板中使用base64编码/解码功能。链接

相关内容

  • 没有找到相关文章

最新更新