Serverless Framework部署随机出现函数模块找不到问题求助
Serverless Framework 随机部署异常求助
背景
我们基于Serverless Framework运行大型应用,模块与用户量持续增长。后端代码为单仓结构,由29个Serverless服务(微服务)编译而成,包含近300个REST和WebSocket端点。通过Github Actions部署,近期出现随机异常,且自有遥测系统无法捕获该错误。
实际问题
通过Github Actions执行sls deploy时,会随机有1-2个函数显示部署成功,但调用时触发Cannot find module错误。从堆栈信息看,并非业务代码导入问题,而是函数包中找不到Serverless函数本身,错误栈如下:
2023-10-25T09:52:03.202Z undefined ERROR Uncaught Exception { "errorType": "Runtime.ImportModuleError", "errorMessage": "Error: Cannot find module 's_putAnsweredQuestionnaire'\nRequire stack:\n- /var/runtime/UserFunction.js\n- /var/runtime/Runtime.js\n- /var/runtime/index.js", "stack": [ "Runtime.ImportModuleError: Error: Cannot find module 's_putAnsweredQuestionnaire'", "Require stack:", "- /var/runtime/UserFunction.js", "- /var/runtime/Runtime.js", "- /var/runtime/index.js", " at _loadUserApp (/var/runtime/UserFunction.js:225:13)", " at Object.module.exports.load (/var/runtime/UserFunction.js:300:17)", " at Object.<anonymous> (/var/runtime/index.js:43:34)", " at Module._compile (internal/modules/cjs/loader.js:1114:14)", " at Object.Module._extensions..js (internal/modules/cjs/loader.js:1143:10)", " at Module.load (internal/modules/cjs/loader.js:979:32)", " at Function.Module._load (internal/modules/cjs/loader.js:819:12)", " at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:75:12)", " at internal/main/run_main_module.js:17:47" ] }
版本与细节
sls --version Running "serverless" from node_modules Framework Core: 3.22.0 (local) 3.21.0 (global) Plugin: 6.2.2 SDK: 4.3.2
- 目标运行环境:
node14 - 使用插件:
- serverless-esbuild
- serverless-domain-manager
- serverless-plugin-log-retention
- serverless-prune-plugin
- Github Action运行环境:
node14
已排查内容
- Github Actions部署日志无相关错误信息
- CloudFormation部署日志显示堆栈正常完成,无异常记录
- 从本地开发者机器重新部署对应服务,100%成功
- Serverless Dashboard未显示受影响服务的部署失败记录
求助问题
- 是否有开发者遇到过同类随机部署异常问题?
- 当前应用规模(29个服务、近300个函数)是否触达AWS未公开的部署限制?
- 后续可从哪些方向继续排查该问题?
内容的提问来源于stack exchange,提问作者Matthias Steinbauer
相关产品推荐
相关产品推荐

