You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过CDK部署的Lambda提示找不到index模块问题求助

Lambda "Cannot find module 'index'" 排查思路
  • 核对Lambda运行时与处理程序配置
    确认Lambda运行时和你的代码环境匹配(比如Node.js 18.x/20.x),重点检查处理程序设置:必须是index.handler(文件名加导出的处理程序名,用点分隔)。如果配置成index或其他错误格式,必然触发找不到模块的报错。

  • 验证S3压缩包的结构
    下载S3中的users.zip,解压后确认:

    • index.js确实在压缩包根目录,不是嵌套在子文件夹(比如users/index.js这种结构会让Lambda找不到文件)。
    • 压缩包内没有多余干扰文件(比如Mac系统的__MACOSX隐藏文件夹)。
  • 检查CDK代码的Lambda配置
    确认CDK定义Lambda的代码中,handler和code配置准确:

    // 示例CDK代码,重点核对以下字段
    const lambdaFn = new lambda.Function(this, 'UserLambda', {
      runtime: lambda.Runtime.NODEJS_20_X,
      handler: 'index.handler', // 必须是"文件名.处理程序名"格式
      code: lambda.Code.fromBucket(Bucket.fromBucketName(this, 'UserBucket', '你的桶名'), 'users.zip'),
    });
    

    确保handler字段没有写错,同时S3桶名和文件路径完全正确。

  • 确认Lambda执行角色权限
    检查Lambda的执行角色是否有S3桶的GetObject权限,如果权限不足,Lambda无法正确下载解压代码包,也会导致文件找不到。可以通过CDK直接添加权限:

    bucket.grantRead(lambdaFn);
    
  • 查看Lambda实际部署包内容
    在Lambda控制台的「代码」标签页,点击「下载部署包」,解压后检查文件结构是否符合预期。如果下载的包结构不对,说明CDK部署或S3上传过程出了问题,需要重新上传正确的压缩包到S3,再重新部署CDK。

  • 检查依赖模块(如果有)
    如果index.js依赖其他npm包,确认这些包已经打包到压缩包的node_modules根目录下。不过当前报错直接指向index,优先排查前面的点。

内容的提问来源于stack exchange,提问作者user3052526

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 09:49:52