【问题标题】:"required is not defined" in packaged AWS Lambda Function打包的 AWS Lambda 函数中的“必需未定义”
【发布时间】:2018-02-06 00:40:03
【问题描述】:

我正在尝试我的第一个打包的 AWS Lambda 函数,该函数当前失败并在日志中返回“必需的未定义”。

最初在函数中,我希望获得一个简单的节点命令,以使用 npm 模块从 Google Sheet 返回一个 json 文件。从我安装了gsjson 的ec2 实例来看,这很容易。我只需输入:

gsjson 1KIg84G9CXErw2bWhkEHWUkOI4CR-biFeLqCtdypaLU8 fruits.json

[![EC2 NodeJS - gsjson][1]][1]

https://www.npmjs.com/package/gsjson

我上传的打包 zip 文件包含一个 index.js 文件和一个节点模块文件夹,其中包含来自 GitHub 的 google-spreadsheet-to-json npm 模块。

这里是 index.js 代码:

var gsjson = require('google-spreadsheet');

exports.handler = function(event, context) {
    'gsjson 1KIg84G9CXErw2bWhkEHWUkOI4CR-biFeLqCtdypaLU8 fruits.json';
}

UPDATE:调整错字后,现在是错误提示

"errorMessage": "Cannot find module 'google-spreadsheet'",

更新 2 - 成功:虽然 npm 模块被称为 gsjson 和 npm 文件夹 google-spreadsheet-to-json。要求必须引用“google-spreadsheet”。上面的编辑代码

【问题讨论】:

    标签: javascript node.js amazon-web-services amazon-ec2 aws-lambda


    【解决方案1】:

    required 未定义,因为您没有定义它。另外,我希望您的意思是require。您可以查看docs 了解更多信息。

    var gsjson = require('google-spreadsheet-to-json');
    

    【讨论】:

    • 嗨,Arpit,不,它绝对是“必需的”。这是运行测试pastebin.com/Yxmxs94g 后 Lambda 中“详细信息”的错误输出
    • 在 nodejs 中没有类似要求的东西。如果你想导入一些东西,那么你必须使用require
    • 啊,好吧,看起来像是错字。我已更改为要求,现在收到 errorMessage”:“找不到模块 'google-spreadsheet
    • 为此,您必须提出另一个问题。你原来的问题得到了回答。我建议你接受这个并问另一个。我很乐意为您提供帮助。
    • 嗨,Arpit,如果您仍然感兴趣。以下是问题stackoverflow.com/questions/46074910/…
    猜你喜欢
    • 2019-05-05
    • 2023-01-07
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 2021-09-29
    • 2022-01-10
    • 2018-06-02
    • 2017-08-19
    相关资源
    最近更新 更多