【发布时间】:2019-11-16 04:37:57
【问题描述】:
我正在用 Java 创建一个简单的 AWS Lambda 函数,它创建并返回一个 PDF。该函数由 API 网关调用。输入是一个简单的 POJO 类,但输出应该是文件的 OutputStream。
对于输入,我尝试创建一个 POJO 类并仅使用 APIGatewayProxyRequestEvent 并且工作正常。下面是我使用的一个简单示例,它接受输入并打印回查询字符串参数。
public class LambdaFunctionHandler implements RequestHandler<APIGatewayProxyRequestEvent, APIGatewayProxyResponseEvent> {
@Override
public APIGatewayProxyResponseEvent handleRequest( APIGatewayProxyRequestEvent input, Context context ) {
return new APIGatewayProxyResponseEvent()
.withStatusCode(200)
.withHeaders(Collections.emptyMap())
.withBody("{\"input\":\"" + input.getQueryStringParameters() + "\"}");
}
}
效果很好,但现在我需要更改它以使用OutputStream 作为输出。如何才能做到这一点?我看到我可以使用RequestStreamHandler,AWS 有一些documentation 来实现它。但是,这将迫使我的输入成为 InputStream,我不确定这将如何与 API 网关一起使用。
如何将此 PDF 提供给请求它的客户?
【问题讨论】:
-
不能直接将响应的类型设置为
OutputStream(在方法声明和接口中)?
标签: java amazon-web-services aws-lambda