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

解压重打包后AWS Lambda出现Runtime.ImportModuleError求助

Lambda Runtime.ImportModuleError 解决思路

针对你遇到的「旧包直接上传正常,Mac终端解压重打包后触发Runtime.ImportModuleError」的问题,核心是打包过程导致的文件结构、权限或环境差异,以下是具体解决方向:

  • 修正打包路径
    旧包的正确结构应该是根目录直接包含api.js、node_modules等核心文件,而你执行zip -r deploy.zip deploy会将deploy文件夹作为压缩包的根目录,Lambda无法找到预期路径下的入口文件。
    正确操作:进入解压后的deploy目录,执行命令:

    zip -r ../deploy.zip .
    
  • 排除Mac系统隐藏文件
    Mac解压zip时会生成__MACOSX隐藏目录和.DS_Store文件,这些冗余文件会被打包进压缩包,干扰Lambda的模块加载逻辑。
    打包时添加排除规则:

    zip -r deploy.zip . -x "*.DS_Store" -x "__MACOSX/*"
    
  • 统一文件权限
    Mac下解压后的文件权限可能与原包不一致,Lambda运行时需要文件具备可读权限(脚本文件还需执行权限)。
    打包前进入项目目录执行:

    chmod -R 644 .
    chmod +x api.js
    
  • 确保依赖架构兼容
    若你的Mac是ARM架构(M系列芯片),本地安装的依赖可能和Lambda使用的x86_64架构不兼容(若重打包时重新安装了依赖则会触发此问题)。
    解决方式:使用npm指定架构安装依赖:

    npm install --platform linux-x64 --arch x64
    
  • 检查导入路径大小写
    Mac文件系统大小写不敏感,但Lambda运行的Linux系统大小写敏感。若代码中导入路径的大小写与实际文件名不一致,本地可正常运行,但Lambda会报错。
    例如代码中写import xxx from './Api.js',实际文件是api.js,需统一导入路径与文件名的大小写。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 08:25:19