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

使用AWS SAM-CLI更新代码需每次重建,热重载不生效如何解决?

SAM CLI 镜像包类型热重载失效解决方案

热重载失效的核心原因是你使用了PackageType: Image的镜像打包模式,SAM CLI 原生热重载默认仅支持 Zip 打包的函数,镜像模式下默认使用构建生成的固定镜像内容,不会自动同步本地代码变更。

方案1:直接挂载本地代码目录(推荐,无需重复构建)

AWS 官方 Python Lambda 镜像的代码默认存放在容器内的/var/task目录,你可以在启动sam local start-api时添加卷挂载参数,直接把本地代码目录映射到容器内:

sam local start-api --docker-volume-basedir "$PWD/hello_world" --warm-containers EAGER

参数说明:

  • --docker-volume-basedir "$PWD/hello_world":将本地hello_world目录直接映射到容器的代码目录,修改本地app.py后下次请求会直接加载最新代码
  • --warm-containers EAGER:提前启动并保持容器运行,避免每次请求重建容器,提升响应速度

该方案仅在修改requirements.txt、Dockerfile等依赖或配置项时才需要重新执行sam build,日常修改业务代码无需构建。

方案2:使用增量监听构建

如果因为镜像配置特殊无法直接挂载目录,可以开两个终端分别执行命令实现热重载:

  1. 第一个终端执行增量构建监听:
sam build --watch

该命令会监测本地代码变更,仅增量更新变化的内容,不会每次全量下载依赖,普通代码变更通常几秒即可完成构建。
2. 第二个终端启动本地API服务:

sam local start-api --warm-containers LAZY

注意事项

  • 不需要手动修改.aws-sam/build目录下的文件,上述两个方案均可直接同步本地源代码变更,无需维护两份代码
  • 若修改了template.yaml、Dockerfile、依赖文件等配置类内容,仍需执行一次全量sam build让变更生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 04:57:01