AWS Lambda - Runtime.ImportModuleError:错误:找不到模块“jmespath”

gok*_*ack 12 amazon-web-services node.js aws-lambda serverless-framework

我正在使用无服务器框架使用 aws lambda,我将运行时从 更改nodejs8.10nodejs10.x,然后我得到了一个错误跟踪,

{"errorType":"Runtime.ImportModuleError","errorMessage":"Error: Cannot find module 'jmespath'","stack":["Runtime.ImportModuleError: Error: Cannot find module 'jmespath'","    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:36:30)","    at Module._compile (internal/modules/cjs/loader.js:701:30)","    at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)","    at Module.load (internal/modules/cjs/loader.js:600:32)","    at tryModuleLoad (internal/modules/cjs/loader.js:539:12)","    at Function.Module._load (internal/modules/cjs/loader.js:531:3)","    at Function.Module.runMain (internal/modules/cjs/loader.js:754:12)","    at startup (internal/bootstrap/node.js:283:19)"]}
Run Code Online (Sandbox Code Playgroud)

这个问题的原因是什么,如何解决?

kon*_*_yu 13

我遇到了同样的问题Error: Cannot find module 'jmespath'并解决了。

aws-sdk通过node_modules使用吗?就像下面这样

var aws = require('aws-sdk');
Run Code Online (Sandbox Code Playgroud)

如果是这样,您只需从 node_modules 中删除 aws-sdk 即可。

删除纱线的 aws-sdk

yarn remove aws-sdk
Run Code Online (Sandbox Code Playgroud)

删除 npm 的 aws-sdk

npm uninstall aws-sdk
Run Code Online (Sandbox Code Playgroud)

aws-sdk从nodejs10开始就包含在lambda中。请参阅:https ://docs.aws.amazon.com/lambda/latest/dg/lambda-runtime.html