Aws lambda 找不到模块';处理程序';运行由serverless部署的简单lambda时

Aws lambda 找不到模块';处理程序';运行由serverless部署的简单lambda时,aws-lambda,serverless-framework,Aws Lambda,Serverless Framework,我正试图开始学习serverless/lambda,所以我创建了一个简单的lambda,并将其与serverless一起部署,这很有效 然而,当我想测试lampbda的端点时,我得到了一个502返回。当我查看日志时,它告诉我它找不到模块处理程序,这没有任何意义 以下是日志: { "errorType": "Runtime.ImportModuleError", "errorMessage": "Error: Cannot find module 'handler'\nRequire stack:

我正试图开始学习serverless/lambda,所以我创建了一个简单的lambda,并将其与serverless一起部署,这很有效

然而,当我想测试lampbda的端点时,我得到了一个
502
返回。当我查看日志时,它告诉我它找不到模块
处理程序
,这没有任何意义

以下是日志:

{
"errorType": "Runtime.ImportModuleError",
"errorMessage": "Error: Cannot find module 'handler'\nRequire stack:\n- 
/var/runtime/UserFunction.js\n- /var/runtime/index.js",
 "trace": [
    "Runtime.ImportModuleError: Error: Cannot find module 'handler'",
"Require stack:",
"- /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:1158:30)",
"    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)",
"    at Module.load (internal/modules/cjs/loader.js:1002:32)",
"    at Function.Module._load (internal/modules/cjs/loader.js:901:14)",
"    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)",
"    at internal/main/run_main_module.js:18:47"
]
}
{
“errorType”:“Runtime.ImportModuleError”,
“errorMessage”:“错误:找不到模块‘处理程序’\n需要堆栈:\n-
/var/runtime/UserFunction.js\n-/var/runtime/index.js“,
“跟踪”:[
“Runtime.ImportModuleError:错误:找不到模块‘处理程序’”,
“需要堆栈:”,
“-/var/runtime/UserFunction.js”,
“-/var/runtime/index.js”,
“在_loadUserApp(/var/runtime/UserFunction.js:100:13)”中,
“在Object.module.exports.load(/var/runtime/UserFunction.js:140:17)”中,
“at对象。(/var/runtime/index.js:43:30)”,
“at模块编译(内部/modules/cjs/loader.js:1158:30)”,
“at Object.Module._extensions..js(internal/modules/cjs/loader.js:1178:10)”,
“at Module.load(内部/modules/cjs/loader.js:1002:32)”,
“at Function.Module._load(内部/modules/cjs/loader.js:901:14)”,
“在Function.executeUserEntryPoint[作为runMain](internal/modules/run_main.js:74:12)中,
“在内部/main/run_main_module.js:18:47”
]
}

这通常意味着它找不到作为执行起点的方法

例如,在serverless.yml上,您可以有如下内容

functions:
  getUsers:
    handler: userFile.handler
这意味着需要在serverless.yml的同一文件夹中有一个
userFile
,并导出方法处理程序

module.exports.hello = async event => {
  return {
    statusCode: 200,
    body: JSON.stringify(
      {
        message: 'Go Serverless v1.0! Your function executed successfully!',
        input: event,
      },
      null,
      2
    ),
  };
};

请注意,它不需要命名为handler函数,只需要在serverless.yml上定义相同的名称,这就是问题所在,
serverless.yml
不在同一文件夹中。谢谢此外,如果处理程序文件的名称类似于“user.controller”,并且您试图在serverless.yml文件处理程序中访问它,则您可能会遇到相同的问题:user.controller.hello