如何用Serverless创建无授权公网访问的AWS Lambda函数并解决403问题?
解决Serverless框架下AWS Lambda公网无授权访问的403问题
出现403是因为你的现有API大概率配置了全局默认授权器,即便单个函数没指定授权规则,也会自动继承全局配置,导致无授权请求被拦截。解决核心是为这个公开端点显式禁用授权:
- 在
http事件配置中添加authorizer: false,明确告知API Gateway该端点无需授权验证。
修改后的完整配置示例:
rel-Session: description: do something public handler: src/handlers/items/getNewPublicItem.getNewPublicItem events: - http: path: api/v1.0/public/item/{id} method: get request: parameters: paths: id: true cors: origin: ${env:CorsAllowOrigin} authorizer: false # 新增该行,禁用授权校验
额外验证步骤
- 确认Serverless框架版本在v1.30及以上(该版本开始支持
authorizer: false配置)。 - 部署完成后,登录AWS控制台的API Gateway,检查该端点的授权设置是否显示为
NONE,确保配置生效。
内容的提问来源于stack exchange,提问作者Valentin Suruceanu
相关产品推荐
相关产品推荐

