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

多租户SaaS架构下如何将请求路由至对应租户的API Gateway?

多租户竖井架构API路由解决方案

可行解决方案

方案1:CloudFront + Lambda@Edge 动态源路由(最高优先级推荐)

  • 仅需配置1个CloudFront分发,绑定泛域名*.api.foo.com,Route53直接配置1条泛解析记录指向该CloudFront分发即可,无需为单个租户单独配置解析记录。
  • 编写Lambda@Edge函数,在Origin Request触发阶段执行:解析请求Host头提取租户标识(比如从tenant1.api.foo.com中提取tenant1),查询提前存储的租户ID与对应API Gateway默认执行端点的映射关系(租户注册时就写入映射库,建议存在DynamoDB中),动态修改请求的源站地址为对应租户的API Gateway端点,直接转发请求。
  • 该方案完全规避了你提到的两个配额限制:不需要在CloudFront提前配置所有源站(突破25个源站上限),也不需要为每个租户API Gateway配置自定义域名(仅占用1个CloudFront自定义域名配额,租户API Gateway直接用官方默认的执行端点即可)。

方案2:统一入口API Gateway路由

  • 申请1个API Gateway自定义域名,绑定泛域名*.api.foo.com,Route53配置泛解析指向该API Gateway的自定义域名,仅占用1个API Gateway自定义域名配额。
  • 该统一入口API Gateway配置通配符路由规则,所有请求到达后先解析Host头提取租户ID,查询映射表找到对应租户的API Gateway地址,通过HTTP集成转发请求到对应租户的资源栈API。
  • 该方案适合请求量不大的场景,实现成本比Lambda@Edge更低,也可以在统一入口层统一做鉴权、限流等公共治理逻辑。

落地注意事项

  • 租户映射数据建议存储在DynamoDB中,配合DynamoDB Global Tables或者CloudFront缓存降低路由查询延迟。
  • 如果租户API Gateway是私有部署,可以通过VPC Endpoint打通统一入口与租户栈的网络,避免公网暴露租户API端点。
  • 路由逻辑中必须增加租户合法性校验,不存在的租户直接返回404,避免无效请求消耗后端资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 03:24:03