ImportModuleError aws lambda。找不到模块“./json.js”

Posted

技术标签:

【中文标题】ImportModuleError aws lambda。找不到模块“./json.js”【英文标题】:ImportModuleError aws lambda. Cannot find module './json.js' 【发布时间】:2021-12-16 23:27:44 【问题描述】:

我正在使用 esbuild 来捆绑我的 lambda 函数。 这是我捆绑依赖项的脚本:

    "scripts": 
    "build": "./node_modules/.bin/esbuild src/lambdaHandler/index.js --bundle --outfile=out/index.js --platform=node --target=node12 --sourcemap --define:process.env.NODE_ENV=\\\"dev\\\"",
...
  ,

我使用apollo-server-lambda 与我的 lambda 通信,然后尝试使用预定义数据模拟一些解析器。然后我部署了我的 lambda,一切正常。之后,我使用已经工作的服务来获取一些数据并从我的一个解析器返回它,并尝试构建和部署我的 lambda。我得到了这个错误。我没有安装任何额外的依赖项。所以我想它与我在解析器中的更改或esbuild 配置有关。但我不确定。有没有人遇到过类似的问题?

P.S.:完整的堆栈跟踪:


  "errorType": "Runtime.ImportModuleError",
  "errorMessage": "Error: Cannot find module './json.js'\nRequire stack:\n- /var/task/index.js\n- /var/runtime/UserFunction.js\n- /var/runtime/index.js",
  "trace": [
    "Runtime.ImportModuleError: Error: Cannot find module './json.js'",
    "Require stack:",
    "- /var/task/index.js",
    "- /var/runtime/UserFunction.js",
    "- /var/runtime/index.js",
    "    at _loadUserApp (/var/runtime/UserFunction.js:100:13)",
    "    at Object.module.exports.load (/var/runtime/UserFunction.js:140:17)",
    "    at Object.<anonymous> (/var/runtime/index.js:43:30)",
    "    at Module._compile (internal/modules/cjs/loader.js:1072:14)",
    "    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10)",
    "    at Module.load (internal/modules/cjs/loader.js:937:32)",
    "    at Function.Module._load (internal/modules/cjs/loader.js:778:12)",
    "    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:76:12)",
    "    at internal/main/run_main_module.js:17:47"
  ]

enter code here

【问题讨论】:

你能发布整个错误响应,如果可能的话也分享 lambda 代码? @Ruben,不确定我是否可以,因为它是 NDA 下的项目)我只能分享部分代码进行更改。但我添加了堆栈跟踪) 【参考方案1】:

此错误与用于记录的'winston' 包相关联。 esbuild 无法正确捆绑它。因此,作为一种解决方法,您可以在 aws lambda 函数构造函数的捆绑选项中指定 nodeModules: ['winston']

【讨论】:

以上是关于ImportModuleError aws lambda。找不到模块“./json.js”的主要内容,如果未能解决你的问题,请参考以下文章

Runtime.ImportModuleError 错误:找不到模块“axios/lib/utils”无服务器

需要 SOAP - Node JS 包失败并在 AWS Lambda 中出现导入错误

为 Scala AWS Lambda 使用 Proguard

AWS Kinesis 连接器库

如何绕过 AWS Lambda 大小限制

AWS API Gateway 集成响应