SST v2.47.3 Lambda函数热重载失效问题求助
确认SST开发服务器的代码变更检测
启动pnpm sst dev后,修改Lambda代码并保存,查看控制台是否输出"reloading"或"updated"相关日志。如果没有触发重载提示,说明SST未检测到文件变更,可检查文件是否在SST配置的监控范围内。核对Lambda函数的配置路径
检查sst.config.ts中目标函数的code字段,确认指向的文件路径和你修改的代码文件一致,避免修改了未关联的冗余文件。检查AWS控制台的Lambda版本与别名
登录AWS Lambda控制台,找到对应函数,查看live别名是否指向最新的临时版本。如果别名仍关联旧版本,手动切换到最新版本测试调用结果。排除客户端/网关缓存影响
用curl直接调用API Gateway或Lambda测试端点,添加-H "Cache-Control: no-cache"参数,确认是否是客户端缓存导致旧响应。检查端口占用情况
SST dev默认依赖特定端口(如3000),用lsof -i :3000(Mac/Linux)或netstat -ano | findstr :3000(Windows)检查端口是否被其他进程占用,杀掉冲突进程后重启pnpm sst dev。验证AWS权限完整性
确认defaultAWS配置文件拥有足够权限:包括lambda:UpdateFunctionCode、lambda:UpdateFunctionConfiguration、apigateway:UpdateDeployment等。可通过aws lambda list-functions命令测试权限是否正常。排查自定义打包配置问题
如果项目使用了esbuild或自定义打包规则,查看sst build日志,确认打包后的代码包含最新修改。检查打包配置是否存在忽略变更文件、输出路径不匹配等问题。尝试调整SST版本
当前v2.47.3可能存在已知热重载bug,可尝试降级到v2.47.0或升级至最新v2稳定版,执行pnpm add sst@2.47.0 --save-exact指定版本后重新安装依赖并测试。
内容的提问来源于stack exchange,提问作者Peter

