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

使用Serverless部署AWS Lambda(Node)容器时无法更新如何解决

解决方案

你遇到的问题是Serverless Framework对容器型Lambda的变更校验逻辑和普通zip包型Lambda不同导致的:默认场景下Serverless只会校验Dockerfile、serverless.yml配置的哈希值,不会校验容器构建依赖的其他文件(比如你本地补装的依赖模块、代码文件的变更),而普通--force参数仅对zip包部署场景生效,对容器部署场景无效。

可通过以下几种方式解决:

  • 如果你使用的是Serverless Framework v3.12.0及以上版本,直接使用容器部署专属的强制构建参数即可触发全量部署:
    sls deploy --force-container-build
    
    该参数会跳过本地缓存的镜像哈希校验,强制重新构建容器镜像、推送到ECR后更新Lambda配置。
  • 如果你用的是旧版本框架,或者需要适配DevOps流水线场景,可以给容器镜像配置动态标签,比如绑定流水线的构建ID、当前时间戳等动态值,示例配置如下:
    functions:
      你的Lambda函数名:
        image:
          uri: ${aws:accountId}.dkr.ecr.${aws:region}.amazonaws.com/你的镜像仓库名:${env:CI_BUILD_ID, 'latest'}
    
    每次运行流水线时传入不同的CI_BUILD_ID环境变量,Serverless会自动检测到配置变更,触发完整部署流程。
  • 临时测试场景也可以直接删除本地缓存目录后重新部署,同样可以触发全量构建:
    rm -rf .serverless && sls deploy
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 03:06:02