【问题标题】:AWS HTTP API Gateway URL Based RoutingAWS HTTP API Gateway 基于 URL 的路由
【发布时间】:2021-10-13 23:34:24
【问题描述】:

好的,这是我的要求。我想为我的客户提供这样的端点:

https://customer-a.mydomain.com 

https://customer-b.mydomain.com

现在,当我们访问上面的 customer-a 端点时,我希望 AWS 将请求路由到客户 A 的 ECS Fargate 服务,该服务由 https://customer-a-elb.mydomain.com 进行负载平衡

同样,当我们访问上面的 customer-b 端点时,我希望 AWS 将请求路由到客户 B 的 ECS Fargate 服务,该服务由 https://customer-b-elb.mydomain.com 进行负载平衡

计划是,通过我的 DNS,我会将所有访问 *.mydomain.com(通配符 DNS 条目)的人路由到 AWS 中的同一个 API 网关。并让 API 网关根据基本 URL 确定路由到哪个负载均衡器。

我希望这可以使用 AWS API Gateway 轻松实现,但到目前为止我还没有找到解决方案来实现它。据我了解,只能进行基于路径的路由(与在这种情况下我真正需要的基于 URL 的路由相反)。

任何提示将不胜感激。

澄清: 根据我的要求,两个客户都需要访问相同的路径 /myservice 但在不同的 ELB 上。例如

https://customer-a.mydomain.com/service1 -> https://customer-a-elb.mydomain.com/service1 
https://customer-b.mydomain.com/service1 -> https://customer-b-elb.mydomain.com/service1 

不知何故,我认为基于路径的路由无法处理这种情况 - 因为我们只能为路径定义一个路由。

【问题讨论】:

  • 为什么不在 route53 上这样做?
  • 因为我的所有 DNS 记录都在其他地方维护,我不想仅仅为了这个要求而迁移到 Route53。你是说这是实现这一目标的唯一方法吗?

标签: amazon-web-services aws-api-gateway


【解决方案1】:

API Gateway 支持基于路径的路由。您可以根据客户端请求的 URL 配置哪些资源将接收传入的 API 请求。下面的例子可能会对你有所帮助。link

【讨论】:

  • 嗯,这个链接虽然看起来很高级,但我猜魔鬼在细节中。特别是,我想知道如何为我在帖子中提出的要求定义路线。本文假设 customer1 访问 service1 并且 customer2 访问 service2 - 因此定义路由很简单。对我来说,我需要两个客户都可以访问 service1,但需要在不同的 ELB 上。我也会在我的帖子中澄清这一点。
猜你喜欢
  • 2021-08-31
  • 2018-09-23
  • 2018-02-25
  • 2015-10-06
  • 2021-04-19
  • 2021-11-03
  • 2022-06-30
  • 2020-10-23
  • 2020-01-05
相关资源
最近更新 更多