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

AWS AddCourse Lambda异常返回Index Lambda的Hello World响应问题排查

问题根因
  • 镜像构建上下文配置冲突:你两个Lambda函数的PackageType都设为Image,且Metadata中的DockerContext统一指定为./src、共用src目录下的同一个Dockerfile。默认Dockerfile会将src作为工作目录,使用根目录下的app.js作为执行入口,所以最终构建出的两个Lambda镜像运行的都是Index函数的代码。
  • 镜像模式下Handler参数不生效:当Lambda使用镜像包类型部署时,执行入口由Dockerfile中的ENTRYPOINT/CMD指令定义,你为AddCourse配置的Handler: index.lambdaHandler不会被读取,自然不会加载src/api/course下的代码。
  • CodeUri配置未匹配镜像构建逻辑:镜像模式下CodeUri指向的是Dockerfile所在的目录,你给AddCourse设置的CodeUri和实际DockerContext路径不一致,该配置不会生效。

你现有的应用目录结构本身没有本质错误,只是部署配置和目录结构没有对应上导致的问题。

修复方案

方案1:切换为Zip包部署(轻量项目更推荐)

Zip模式下Handler参数会生效,修改template.yml配置即可:

  1. 删掉两个函数配置中的PackageType: Image字段,SAM默认使用Zip包部署
  2. 保留Index函数现有配置即可正常运行
  3. 确认AddCourse的CodeUri指向src/api/course/Course-POST-CreateNewCourse目录,Handler: index.lambdaHandler配置对应你代码的导出方法即可。

方案2:继续使用镜像部署

需要修正镜像构建配置,二选一即可:

  • 给每个Lambda单独准备Dockerfile,放在对应函数的CodeUri目录下,每个Dockerfile单独指定对应代码文件作为执行入口
  • 共用同一个Dockerfile的话,在Dockerfile中通过构建参数接收入口路径,两个函数的Metadata块中添加DockerBuildArgs参数传入各自的入口文件路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 07:12:03