簡體   English   中英

如何使用 Node.js AWS Lambda ZC1C425268E68385D1AB5074C17A94 從 S3 讀取 CSV 數據

[英]How to read CSV data from S3 using Node.js AWS Lambda function

我有一個 Node.js AWS Lambda function 並且我正在嘗試從 ZCC8D68C551C4A9A6D5313E 中的 ZCC8D68C551C4A9A6D5313E 文件中讀取記錄並打印其內容。

下面是我實現相同的代碼,但是我得到 Null 為 output。

代碼:

const AWS = require('aws-sdk');
const s3 = new AWS.S3();
const csv = require('csv-parser');
const bucket = 'awslambdabuckets';
const objectkey = 'record.csv';
const params = { Bucket: bucket, Key: objectkey };
const results = [];

exports.handler = async function (event, ctx, callback) {
    try {
        const file = s3.getObject(params).createReadStream();

        file
            .pipe(csv())
            .on('data', function (data) {
                results.push;
            })
            .on('end', () => {
                console.log(results);
                callback(null, results);
            });
    } catch (err) {
        console.log(err);
        callback(Error(err));
    }

};

Output: 拉姆達輸出

有人可以幫我指出問題所在以及如何解決。

您沒有將數據推送到結果,請查看並進行如下更改

exports.handler = async function (event, ctx, callback) {
  try {
      const file = s3.getObject(params).createReadStream();

      file
          .pipe(csv())
          .on('data', function (data) {
              results.push(data);
          })
          .on('end', () => {
              console.log(results);
              callback(null, results);
          });
  } catch (err) {
      console.log(err);
      callback(Error(err));
  }
};

您沒有將數據推送到數組:

const AWS = require('aws-sdk');
const s3 = new AWS.S3();
const csv = require('csv-parser');
const bucket = 'awslambdabuckets';
const objectkey = 'record.csv';
const params = { Bucket: bucket, Key: objectkey };
const results = [];

exports.handler = function (event, ctx, callback) {
    try {
        const file = s3.getObject(params).createReadStream();

        file
            .pipe(csv())
            .on('data', function (data) {
                results.push(data); // --> here
            })
            .on('end', () => {
                console.log(results);
                callback(null, results);
            });
    } catch (err) {
        console.log(err);
        callback(Error(err));
    }

};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM