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

首次使用AWS API Gateway遇{"message":"Not Found"}错误排查求助

HTTP API Gateway 调用返回{"message":"Not Found"}的排查方向

核心原因说明

你未点击API页面的Deploy按钮是导致该错误的主要问题——HTTP API Gateway无论是否需要多版本或多配置,都必须完成部署才能对外提供服务。未部署的API,其生成的Invoke URL并未关联任何有效路由和后端集成,这里的"Not Found"指的是API Gateway无法匹配到已部署的路由规则及对应的后端资源(你的Lambda函数)。

具体排查步骤

  • 确认API部署状态
    进入API Gateway控制台,找到你的HTTP API,点击左侧「Deployments」选项卡,检查是否存在已部署的阶段(如默认的$default)。若没有,点击「Deploy」按钮,选择目标阶段(可直接使用默认的$default)完成部署,之后重新调用Invoke URL测试。

  • 检查路由配置匹配性
    部署完成后,验证路由配置是否与调用的URL一致:

    • 确认路由的HTTP方法(如GET/POST)和路径(如/)与你实际调用的URL路径、请求方法完全匹配
    • 确认路由的集成目标是你指定的Lambda函数,且集成配置中的Lambda入口函数(lambda_function.second)填写正确
  • 验证Lambda集成权限
    尽管你在Lambda控制台测试正常,但API Gateway需要具备调用该Lambda函数的权限:

    • 进入Lambda控制台,找到你的函数,点击「配置」→「权限」,检查资源策略中是否包含API Gateway的调用权限
    • 若缺失,可通过AWS CLI添加权限(替换占位符为你的实际资源信息):
      aws lambda add-permission --function-name your-lambda-function-name --statement-id apigateway-invoke --action lambda:InvokeFunction --principal apigateway.amazonaws.com --source-arn "arn:aws:execute-api:your-region:your-account-id:your-api-id/*/your-http-method/your-path"
      
  • 查看API Gateway日志定位细节
    开启API Gateway的访问日志,获取更详细的错误信息:

    • 进入API Gateway控制台,找到你的API,点击「设置」,配置日志目标为CloudWatch Logs,开启日志记录
    • 再次调用Invoke URL后,前往CloudWatch控制台查看对应日志组的日志内容,根据具体错误信息进一步排查

你的Lambda代码参考

import logging

logger = logging.getLogger()
logger.setLevel(logging.INFO)

def second(event, context):
    ...
    result = None
    action = 'increment'
    number = event.get('number', 17)
    if action == 'increment':
        result = number + 1
        logger.info('Calculated result of %s', result)
    else:
        logger.error("%s is not a valid action.", action)

    response = {'result': result}
    return response

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 10:36:27