AWS Lambda函数调用返回Not Found问题求助
问题分析与解决方案
提交表单后返回{"message":"Not Found"}的核心原因是表单提交的目标路径未关联Lambda函数,具体排查和修复步骤如下:
1. 确认API Gateway路径配置
检查你的API Gateway是否将Lambda函数关联到了根路径(/):
- 登录AWS控制台进入API Gateway服务,找到对应API。
- 查看资源列表,确认根路径(
/)下是否配置了GET方法,且该方法已集成到你的Lambda函数。 - 如果Lambda关联的是子路径(比如
/dev或其他自定义路径),表单提交的URL必须包含该子路径,例如https://xxxxx.execute-api.us-east-1.amazonaws.com/dev/?name=myname&location=loc。
2. 修正HTML表单的action属性
打开你的index.html文件,找到表单标签,确保action属性指向正确的API路径:
- 如果Lambda关联根路径,设置
action="./"(保持当前路径提交); - 如果关联子路径,设置
action="/dev/"(替换为你的实际阶段/子路径)。
示例修正后的表单标签:
<form method="GET" action="./"> <!-- 表单内容 --> </form>
3. 验证API Gateway部署状态
确认你已将API Gateway的配置部署到对应的阶段:
- 在API Gateway控制台,点击「部署API」,选择目标阶段(比如
dev)完成部署。未部署的配置不会生效,会导致路径无法匹配Lambda。
4. 检查Lambda触发配置
进入Lambda函数控制台,查看「触发器」标签:
- 确认API Gateway触发器的「部署阶段」「资源路径」「HTTP方法」与实际使用的路径、方法一致(这里是GET方法)。
内容的提问来源于stack exchange,提问作者Francesco Marchioni
相关产品推荐
相关产品推荐

