我是AWS Lambda的新手,我面临着一个问题。我正在Node中开发,我正在从我的S3下载JSON文件(非常大的12-25MB),进行一些处理,并试图以JSON的形式将结果上传回S3。
我遵循这个教程:https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html,它基本上是做同样的事情。
我的问题是,我的lambda在对数据处理得到的对象调用JSON.stringify时总是超时,因此文件永远不会上传回S3。我的处理结果也是一个相当大的对象,但仍然较小的输入(cca )。(10)。
我已经尝试过使用fast-json-stringify库,但最终得到了同样的结果。
有没有人知道是否还有其他更快的方法将对象转换为字符串、缓冲区或流?
更新
这是我的代码:
async.waterfall(
[
(next) => {
s3.getObject({
Bucket: bucketName,
Key: keyDownload
}, next);
},
(response, next) => {
next(null, processData(JSON.parse(response.Body)));
},
(data, next) => {
s3.putObject({
Bucket: bucketName,
Key: keyUpload,
Body: JSON.stringify(data)
}, next);
}
],
(err) => {
if (err) {
callback(err);
} else {
callback();
}
}
);发布于 2019-09-24 07:01:20
你试过S3多部分上传了吗,我建议你去看看-
https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html
发布于 2019-09-24 10:40:41
--timeout 10超时是可选值之后降到适当的值。因此,默认为3秒。最大允许值为900秒,即15 min.https://stackoverflow.com/questions/58074150
复制相似问题