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

如何使用curl测试API Gateway的请求型Lambda授权器?

请求型Lambda授权器curl测试返回Unauthorized问题排查

情况说明

我跟着AWS的请求型Lambda授权器示例文档构建了授权器,配置如图:
请求型Lambda授权器配置

用下面的curl命令测试API时,一直返回{"message":"Unauthorized"}:

curl -X GET \
  "https://XXX.execute-api.us-west-2.amazonaws.com/dev/pets?QueryString1=QueryString1" \
  -H "headerauth1: headerauth1" \
  -H "StageVar1: StageVar1"

排查与修正要点

  • 阶段变量无需通过请求头传递:从配置图能看到StageVar1是API Gateway的阶段变量,属于部署阶段的内部配置项,不需要在请求里用Header携带。你当前的curl命令多传了这个请求头,可能导致授权逻辑不匹配,先删掉这个Header。
  • 核对参数一致性:确认curl里的QueryString1、headerauth1的值和Lambda授权器预期的完全一致,注意大小写——API Gateway会自动把请求头转为小写,Lambda函数里的处理逻辑要对应上。
  • 检查Lambda执行日志:去Lambda控制台查看函数执行日志,确认请求的参数(请求头、查询字符串、阶段变量)是否正确传递到函数中,以及函数是否返回了允许访问该API资源的IAM策略。参数传递错误或策略返回无效都会触发Unauthorized。
  • 验证API关联配置:确认/pets的GET方法确实绑定了这个请求型Lambda授权器,没有选错其他授权方式。

修正后的curl命令

去掉多余的阶段变量请求头,命令调整为:

curl -X GET \
  "https://XXX.execute-api.us-west-2.amazonaws.com/dev/pets?QueryString1=QueryString1" \
  -H "headerauth1: headerauth1"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 10:18:19