首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS Lamda-找不到模块“csvtojson”

AWS Lamda-找不到模块“csvtojson”
EN

Stack Overflow用户
提问于 2020-01-04 12:07:47
回答 1查看 2.4K关注 0票数 1

我使用AWS服务从上传到S3桶上的CSV文件中读取内容,并将其转换为JSON格式。我从csv到json阶段被堵住了。

代码语言:javascript
复制
    const AWS = require('aws-sdk');
    const csvtojson = require('csvtojson');
    const S3 = new AWS.S3();

    exports.handler = async (event,content,callback) => {
        console.log(' inside trigger ')
        const src_bkt = event.Records[0].s3.bucket.name;
        const src_key = event.Records[0].s3.object.key;

        try {
            const params = {Bucket: src_bkt, Key:src_key}

       // get csv file and create stream
            const stream = S3.getObject(params).createReadStream();
            // convert csv file (stream) to JSON format data
            const json = await csvtojson().fromStream(stream);
            console.log(json);
      }
      catch (err) {
          console.log(JSON.stringify(err))
        return {
          statusCode: err.statusCode || 400,
          body: err.message || JSON.stringify(err.message)
        }
      }
    };

错误消息: "errorType":"Runtime.ImportModuleError","errorMessage":“错误:找不到模块'csvtojson'",

我试图转换lambda上的节点模块来检查运气。请分享任何建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-04 12:42:39

您需要将lambda打包并部署为zip文件。该文件应该包含带有处理程序函数的javascript文件以及所有依赖项的node_modules目录。

压缩文件结构。

handler.js

节点模块/

./

如何设置项目

node_modules

  • 使用my-project初始化一个项目文件夹,它将为您创建一个package.json文件,使用npm install csv2json --savehandler.js

  • install csv2json中创建处理程序函数,现在您将看到一个node_modules目录创建了H 212H 113 zip my-project目录,这样您就有了my-project.zip,这个目录应该直接包含handler.js

参考资料:

https://aws.amazon.com/premiumsupport/knowledge-center/lambda-deployment-package-nodejs/

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59590490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档