【问题标题】:Parsing CSV in Lambda using Node JS使用 Node JS 在 Lambda 中解析 CSV
【发布时间】:2017-03-14 16:16:27
【问题描述】:

我正在尝试使用 AWS Lambda 托管的 Node JS 解析来自 S3 的 CSV 文件。我试过同时使用fast-csvcsv-parser npm。但是,我的两种解决方案都会导致 Error: write after end 导致的 Lambda 函数失败。感谢您的帮助。

编辑:我在处理程序中声明流变量。更新了代码。

// dependencies
const csv = require('fast-csv');
const parse = require('csv-parser')
const aws = require('aws-sdk');
const s3 = new aws.S3({ apiVersion: '2006-03-01' });
const uuidv4 = require('uuid/v4');

exports.handler = (event, context, callback) => {
  // read S3 object stream
  var s3Stream = s3.getObject(params, (err, data) => {
    if (err) {
        console.log(err);
        const message = `Error getting object ${key} from bucket ${bucket}. Make sure they exist and your bucket is in the same region as this function.`;
        console.log(message);
        callback(message);
    } else {
        console.log('CONTENT TYPE:', data.ContentType);
        callback(null, data.ContentType);
    }
  }).createReadStream();


  // read CSV with fast-csv
  // options for fast-csv npm
  var options = {
    headers:true,
    escape:'\\',
    trim:true,
  };

  csv.fromStream(s3Stream, options).on("data", function(data) {
    data.id = uuidv4();
    data.createDate = new Date().toISOString();
    console.log(data);
  }).on("error", function(data) {
    console.error("Got an error: " + data);
  }).on("end", function() {
    console.log("Done reading.");
  });


  // read CSV with csv-parser
  var otherOptions = {
    columns : true,
    auto_parse : true,
    escape : '\\',
    trim : true,
  };
  var parser = parse(otherOptions);
  parser.on('data', function(data) {
    data.id = uuidv4();
    data.createDate = new Date().toISOString();
    console.log(data);
  })
  .on('end',function(data) {
    //do something wiht csvData
    console.log(data);
  });
  s3Stream.pipe(parser);
};

【问题讨论】:

标签: node.js csv npm aws-lambda


【解决方案1】:

通过删除回调来修复它:

var s3Stream = s3.getObject(params).createReadStream();

我真的希望他们能很好地记录所有这些。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-17
    • 1970-01-01
    • 2019-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-20
    相关资源
    最近更新 更多