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

AWS CodeStar项目添加aws-sdk后出现zip时间戳及CodeUri上传失败问题

Fixing "zip does not support timestamps before 1980" Error with AWS SDK in AWS CodeStar Lambda Project

我之前也碰到过一模一样的问题,折腾了好一阵才搞定,咱们来一步步解决这个麻烦:

问题根源

这个错误本质是因为aws-sdk模块的某些版本里,存在创建时间戳早于1980年的文件——而zip格式对文件时间戳有下限要求(必须晚于1980年1月1日),当CodeStar打包Lambda构件时,这些旧时间戳的文件就会触发打包失败。

解决方案(按推荐顺序尝试)

  • 锁定aws-sdk到稳定版本
    有些较新的aws-sdk版本已经修复了这个时间戳问题,打开你的package.json,把aws-sdk的版本指定为一个明确的稳定版,比如:

    "dependencies": {
      "aws-sdk": "^2.1400.0"
    }
    

    然后删除package-lock.json和node_modules,重新运行npm install,再尝试构建部署。

  • 跳过安装脚本安装aws-sdk
    部分aws-sdk版本的安装脚本会生成带有异常时间戳的文件,你可以用这个命令跳过脚本安装:

    npm install aws-sdk --ignore-scripts
    

    这样能避免生成那些有问题的文件。

  • 在构建流程中批量修正时间戳
    如果上面的方法都不管用,你可以在CodeStar的buildspec.yml里加一个步骤,强制把aws-sdk目录下所有文件的时间戳改成1980年之后:

    phases:
      install:
        commands:
          - npm install
          # 修正aws-sdk文件的时间戳,满足zip格式要求
          - find node_modules/aws-sdk -exec touch -t 198001010001 {} \;
    

    这个命令会把所有相关文件的时间戳设为1980年1月1日0点01分,刚好符合zip的要求。

另外提个小细节:你的Lambda配置里Handler写的是index.handle,通常Lambda的handler格式是文件名.导出的函数名,如果你的代码里导出的函数是handler(比如exports.handler = ...),记得把这里改成index.handler,不然后续运行时会找不到函数哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:26:35