AWS API Gateway能否将路径参数作为Lambda授权器的身份源?
结论
可以直接通过官方指定的表达式引用project_id路径参数作为授权器身份源的组成部分。
具体配置方法
你在Lambda授权器的「身份源」配置项中,添加如下表达式即可捕获路径中的project_id参数:
$request.path.project_id
通常建议同时把用户的身份凭证(比如Authorization请求头)也加入身份源列表,最终的身份源配置可以是两项:
$request.header.Authorization$request.path.project_id
此时API Gateway会将「用户身份凭证+项目ID」的组合作为缓存键,完全避免不同项目、不同用户的授权缓存互相误用的问题。
注意事项
- 表达式中的路径参数名必须和你路由中定义的
{project_id}完全一致,大小写也需要匹配,否则无法正常捕获参数值 - 身份源可以配置多个值,所有值完全匹配时才会命中缓存,你可以根据业务需求灵活添加其他参数(比如特定查询参数、请求头等)到身份源列表
- 授权缓存TTL(
authorizerResultTtlInSeconds)最长可配置为3600秒,你可以根据自身业务的权限变更频率调整合适的数值
内容的提问来源于stack exchange,提问作者Lauren
相关产品推荐
相关产品推荐

