如何将请求路由到正确的租户 api 网关?
How to route requests to right tenant api gateway?
我正在创建一个多租户筒仓模式架构来支持 SAAS 应用程序。继此 link.
我可以像这样注册新租户并创建他们各自的堆栈:
到目前为止一切顺利,下一步是为每个租户创建自己的域,例如:tenant1.admin.foo.com
,以访问相同的 CloudFront 分配(所有 Web 前端必须相同)。我可以通过在 Route53 *.admin.foo.com
中创建一条可以访问 CloudFront
的记录来做到这一点
问题:
我需要将每个请求路由到各自的租户堆栈,例如:tenant1.api.foo.com/whatever
应该路由到为租户 1 创建的 api 网关。
起初我想在 CloudFront 中创建一个路由到 api 网关的源,问题是 CloudFront 源限制为 25 个。
我想在 Route53 中创建一条记录以指向它们各自的 api 网关,但问题是我将不得不在 api 网关中使用自定义域,因为它们是限制为 120 个,我预计会有超过 120 个的租户。
我该如何做这个路由?
这是一个用例的说明:
PS: 欢迎任何建议。
您可以使用为备用域名 (CNAME) 设置的通配符 (*.api.foo.com) 设置分配。如果您将 Lambda@Edge 附加到源请求(在缓存行为设置下),您可以动态修改主机 header 以指向适当的 API 网关主机 (xxxxxx.execute-api。 us-east-1.amazonaws.com).
他们用 S3 存储桶作为来源的 AWS 博客。
它应该相当接近地转换为 API 网关主机名:
我正在创建一个多租户筒仓模式架构来支持 SAAS 应用程序。继此 link.
我可以像这样注册新租户并创建他们各自的堆栈:
到目前为止一切顺利,下一步是为每个租户创建自己的域,例如:tenant1.admin.foo.com
,以访问相同的 CloudFront 分配(所有 Web 前端必须相同)。我可以通过在 Route53 *.admin.foo.com
中创建一条可以访问 CloudFront
问题:
我需要将每个请求路由到各自的租户堆栈,例如:tenant1.api.foo.com/whatever
应该路由到为租户 1 创建的 api 网关。
起初我想在 CloudFront 中创建一个路由到 api 网关的源,问题是 CloudFront 源限制为 25 个。
我想在 Route53 中创建一条记录以指向它们各自的 api 网关,但问题是我将不得不在 api 网关中使用自定义域,因为它们是限制为 120 个,我预计会有超过 120 个的租户。
我该如何做这个路由?
这是一个用例的说明:
PS: 欢迎任何建议。
您可以使用为备用域名 (CNAME) 设置的通配符 (*.api.foo.com) 设置分配。如果您将 Lambda@Edge 附加到源请求(在缓存行为设置下),您可以动态修改主机 header 以指向适当的 API 网关主机 (xxxxxx.execute-api。 us-east-1.amazonaws.com).
他们用 S3 存储桶作为来源的 AWS 博客。 它应该相当接近地转换为 API 网关主机名: