amazon-web-services - 增加 AWS Lambda 响应正文有效负载大小
问题描述
我正在使用 AWS API 网关来调用我的 aws lambda 函数。它们是 REST Web 服务,会将响应返回给调用者。有些响应超过 20 MB。由于响应数据的性质(数据是表示复杂结构的折线),我不能在这里使用分页。AWS Lambda 限制了 lambda 响应正文不能超过 6MB 大小,由于这个限制,我的一些超过 6MB 的响应因“正文大小太长”消息而失败。我想知道有没有办法增加 lambda 响应的 6MB 限制?
解决方案
感谢您的评论,我已经按照评论中提到的相同方式实现了
将响应上传到 s3 存储桶,并向调用者提供重定向 url。这是有效的示例代码。您还可以在 s3 存储桶级别启用 CORS 以使其正常工作。您可以更改到正确的区域
public String uploadToS3(Set<MyClass> myclassSet, String bucketName) throws IOException {
Region region = Regions.getCurrentRegion();
if (region == null) {
region = Region.getRegion(Regions.US_EAST_1);
}
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
.withRegion(region.getName())
.withCredentials(DefaultAWSCredentialsProviderChain.getInstance())
.build();
ObjectMapper mapper = new ObjectMapper();
String jsonClass = mapper.writeValueAsString(myclassSet);
s3Client.putObject(bucketName, "random_key.json", jsonClass);
GeneratePresignedUrlRequest req = new GeneratePresignedUrlRequest(bucketName, "random_key.json");
URL url = s3Client.generatePresignedUrl(req);
String redirectUrl = url.toString();
return redirectUrl;
}
推荐阅读
- angular - 未捕获(承诺):错误:StaticInjectorError(AppModule)[AuthServiceProvider -> HttpHeaders]:
- php - 如何将 SUM() 结果转换为 JSON?
- php - 无法打开流:.env
- oracle - 关于 Oracle PL SQL 循环
- python - 用负数计算列表中的绝对最小值
- ios - 使用 FacebookLogin 包构建 iOs 失败
- javascript - javascript在特定位置显示svg并将其移动到另一个
- python - 打印语句在时间限制后消失
- c - 初始化结构内的数组
- c# - 当要求取消时,我应该选择扔掉还是返回?