gpt4 book ai didi

micronaut - 使用 Micronaut 创建返回二进制内容的 AWS Lambda 函数

转载 作者:行者123 更新时间:2023-12-01 03:13:26 24 4
gpt4 key购买 nike

我不确定这是 Micronaut 还是 AWS Gateway 问题。任何帮助都会很棒。

我正在尝试使用 Micronaut 框架创建一个 Lambda 函数,该函数通过 AWS API 网关返回 pdf。这是支持的吗?我需要更改什么才能返回二进制内容?我尝试将方法的返回类型更改为 byte[],但看起来 Content-Type 始终是 application/json。

作为一点上下文,我希望使用 Groovy 编写函数,并使用动态报告使用来自 DynamoDB 的数据创建 PDF。

提前谢谢了。

最佳答案

我现在已经设法让这个工作。

我创建了一个响应对象:

class ReportResponse {

boolean isBase64Encoded = true
def headers
byte[] body
}

然后在我的处理程序中,我有:
ReportResponse reports(data, Context context) {
return new ReportResponse(
headers: [ "Content-Type": "application/pdf" ],
body: JasperExportManager.exportReportToPdf(new
MemberReport().getReport(data.queryStringParameters.id)))
}

不幸的是,当我对 ReportResponse 类中的 header 进行硬编码时,出现了一个控制台错误(关于 OpenJDK ..)

以上允许我在 AWS API 网关中使用 Lambda 代理,因此完整的请求对象被传递给函数。

唯一的其他更改是在 AWS API Gateway 中将 '*/*' 设置为二进制,这对我的用例来说很好。

关于micronaut - 使用 Micronaut 创建返回二进制内容的 AWS Lambda 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50524576/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com