amazon-web-services - 如何使用 API Gateway (HTTP) 来处理复杂的 SaaS URL 请求?
问题描述
我一直在尝试构建和部署无服务器 (lambda) SaaS 应用程序,但对于如何将 URL 正确地通过管道传输到适当的 lambda 和 S3 存储桶中,我遇到了一些困惑。
我在想应用程序的结构如下。
- 超级管理员界面 ( admin .mydomain.com)
- Angular 应用程序(管理员.mydomain.com)
- .net 核心 Lambda HTTP API ( admin .mydomain.com/api)
- 租户管理界面
- Angular 应用程序 ( admin.tenant.mydomain.com )
- .net 核心 Lambda HTTP API ( admin.tenant .mydomain.com/api)
- 租户用户界面
- Angular 应用程序(租户.mydomain.com)
- .net 核心 lambda HTTP API(租户.mydomain.com/api)
超级管理员界面非常简单。我只需要从 S3 托管任何不匹配的内容/api*
。
租户管理界面变得很奇怪,因为我需要admin.*.mydomain.com
我不完全确定该怎么做。我不会经常加入租户,但我仍然不想手动修改 SSL 证书和相关域。
租户用户界面也有点令人困惑,因为据我所知,我现在无法在 API Gateway ( *.mydomain.com
)中真正分配通配符域
我考虑过将我的 api 放在顶层api.mydomain.com
,但我担心让一个 URL 托管太多东西,所以我决定/api
这样做,这样我就不必担心 CORS。我知道我可以使用 API Gateway 将它们拆分为不同的 lambda,并将其保留为顶级,但如果我能提供帮助,我宁愿不要被迫使用它。(另一个影响是这也给了我一个放置公共 api 的好地方api.mydomain.com
)
现在,在任何基于服务器的解决方案中,我要做的就是设置一个带有一些花哨的正则表达式重定向的反向代理,我将参加比赛,但我不确定如何在 AWS 中实现这一点,而不需要建立一个 EC2 实例作为代理经理。
附带说明一下,我正在使用 API Gateway,因为它是为我创建的 .NET Core Serverless Lambda 模板。我的 AWS 之旅才刚刚 3 周左右,所以如果我完全错了,我会全力以赴。
解决方案
推荐阅读
- html - 在引导程序中打印时隐藏表格边框?
- scala - Scala - value < 不是 AnyVal 的成员
- python - cv2.imread always returns NoneType python 3.6
- python - 列表到 Pandas 数据框的 Python 字典
- office365 - 允许用户在没有删除用户权限的情况下将电子邮件帐户添加到 office365
- openedge - 使用 Progress Openedge 进行应用服务器调用时引发 XID 错误
- ruby-on-rails - 跨模型共享属性枚举
- java - Java 可选映射和过滤器未按预期工作
- html - 为什么 div 为图像占用额外空间?
- python - 如何在 Keras、python 中使用 LSTM 预测数据集中的下一个元素?