我目前正在使用无服务器来处理nodejs lambda API。部署完成后,当我尝试访问API端点时,服务器返回内部错误,除以下输出外,CloudWatch没有提供很多信息:
{
"errorType": "Error",
"errorMessage": "ENOENT: no such file or directory, open '/home/sbx_user1051/.serverlessrc.2618284497'",
"code": "ENOENT",
"errno": -2,
"syscall": "open",
"path": "/home/sbx_user1051/.serverlessrc.2618284497",
"stack": [
"Error: ENOENT: no such file or directory, open '/home/sbx_user1051/.serverlessrc.2618284497'",
" at Object.openSync (fs.js:443:3)",
" at Function.writeFileSync [as sync] (/var/task/node_modules/write-file-atomic/index.js:212:13)",
" at createConfig (/var/task/node_modules/serverless/lib/utils/config/index.js:38:19)",
" at getConfig (/var/task/node_modules/serverless/lib/utils/config/index.js:52:5)",
" at Object.get (/var/task/node_modules/serverless/lib/utils/config/index.js:99:18)",
" at Object.<anonymous> (/var/task/node_modules/serverless/lib/utils/isTrackingDisabled.js:5:75)",
" at Module._compile (internal/modules/cjs/loader.js:778:30)",
" at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)",
" at Module.load (internal/modules/cjs/loader.js:653:32)",
" at tryModuleLoad (internal/modules/cjs/loader.js:593:12)",
" at Function.Module._load (internal/modules/cjs/loader.js:585:3)",
" at Module.require (internal/modules/cjs/loader.js:692:17)",
" at require (internal/modules/cjs/helpers.js:25:18)",
" at Object.<anonymous> (/var/task/node_modules/serverless/lib/utils/tracking.js:11:28)",
" at Module._compile (internal/modules/cjs/loader.js:778:30)",
" at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)"
]
一个下午的搜索后,我找不到答案的开头。
我可以向您提供有关我的sls配置的信息,如果需要的话,也可以向您提供信息,这要感谢任何可以在这里帮助我的人。
答案 0 :(得分:1)
看来,框架逻辑中的!important
解析为不存在的目录(os.homedir()
不存在),至少是在可能发生此错误的时候。
在你这边可以吗?你的设置是什么?
答案 1 :(得分:0)
似乎没有默认Lambda环境中尝试使用的某些模块。您需要使用这些模块创建一个单独的层。
答案 2 :(得分:0)
请检查您在lambda上的句柄值,以确保它与输入函数一致。