Sat*_*tha 2 csv lambda node.js
我正在尝试使用Fastcsv nodejs包转换CSV文件。有趣的是,该代码段在我的系统上本地良好运行。但是,如果我尝试将其与AWS lambda程序集成,则会给出结束后写入错误。
var stream = fs.createReadStream(s3EventInfo.inputDownloadLoc)
.pipe(csv.parse({headers: true}))
//pipe the parsed input into a csv formatter
.pipe(csv.format({headers: true}))
//Using the transfrom function from the formatting stream
.transform(function(row, next){
transformLine(row, next);
})
.pipe(fs.createWriteStream(s3EventInfo.outputFileLoc))
.on("end", function(){
callback();
});
Run Code Online (Sandbox Code Playgroud)
这是aws日志中的错误。
Error: write after end
at writeAfterEnd (_stream_writable.js:133:12)
at PassThrough.Writable.write (_stream_writable.js:181:5)
at write (_stream_readable.js:602:24)
at flow (_stream_readable.js:611:7)
at _stream_readable.js:579:7
at process._tickDomainCallback (node.js:486:13)
Run Code Online (Sandbox Code Playgroud)
请帮助理解和解决该问题。
小智 5
Lambda函数被部署并按需运行,但是如果尚未销毁对同一lambda函数的其他调用,则可以在现有实例上运行它。您无法控制它,但是需要确保您的代码可以正确处理它。
如果您的流是在全局范围内定义的,那么您的问题是那些后续调用正在重用已经接收到“结束”事件的流。
您需要封装流,以便为每个调用实例化它们。
| 归档时间: |
|
| 查看次数: |
2101 次 |
| 最近记录: |