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

在AWS Lambda中使用Danfo.js的方法咨询:打包超50MB限制

在AWS Lambda中使用Danfo.js及打包体积超限解决方案

可以在AWS Lambda中使用Danfo.js,但直接打包完整node_modules会因Danfo.js依赖(如TensorFlow.js等)导致体积超出50MB限制,以下是几种可行的优化方案:

方案一:用Lambda层拆分依赖

将Danfo.js及其依赖单独封装为Lambda层,主代码包仅保留业务逻辑,层的未压缩体积限制为250MB,足够容纳相关依赖:

  • 创建空目录,初始化npm项目:npm init -y
  • 安装Danfo.js:npm install danfojs-node
  • 将node_modules目录直接打包为ZIP(注意ZIP根目录需是node_modules,不要嵌套在子文件夹)
  • 在AWS控制台创建Lambda层,上传该ZIP包,再将层关联到你的Lambda函数
  • 主代码包仅包含业务代码,无需再打包node_modules

方案二:用代码压缩工具剔除冗余代码

通过ESBuild等工具做Tree Shaking,只打包业务用到的代码:

  • 安装ESBuild:npm install esbuild --save-dev
  • 创建构建脚本build.js:
    require('esbuild').buildSync({
      entryPoints: ['your-main-code.js'],
      bundle: true,
      platform: 'node',
      target: 'node18', // 匹配你的Lambda运行时版本
      outfile: 'dist/index.js',
      external: ['aws-sdk'], // 排除Lambda自带的AWS SDK
    })
    
  • 执行构建:node build.js,将dist目录下的文件打包为ZIP上传,体积会大幅压缩

方案三:安装Danfo.js轻量版本

安装时跳过可选依赖,减少体积:

npm install danfojs-node@latest --no-optional

注意事项

  • 确保Lambda运行时版本为Node.js 16+,兼容Danfo.js的运行要求
  • 使用Lambda层时,需在对应架构(x86_64或arm64)环境下安装依赖,避免运行时兼容性错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 14:35:34