Gio*_*gio 7 subdomain wildcard-subdomain amazon-web-services amazon-route53 aws-api-gateway
我在 AWS Route53 DNS 服务上有一个托管区域名称 example.com。我有多个子域记录集,例如:
api.example.com - type A - ALIAS xxx.cloudfront.net
www.example.com - type A - ALIAS xxx.cloudfront.net
app.example.com - type A - ALIAS xxx.cloudfront.netRun Code Online (Sandbox Code Playgroud)
所有记录都指向 Api Gateway 自定义域生成的 Cloudfront。
我想为我的所有用户提供一个自定义子域:
USERNAME.example.com
alice.example.com
bob.example.com
...
Run Code Online (Sandbox Code Playgroud)
我事先不知道我所有用户的用户名,可能有 1000 个。
如何设置 Route53 以将所有未定义的子域路由到特定的 Cloudfront => Api Gateway => AWS Lambda 实例?
来自亚马逊 route53 文档:https ://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DomainNameFormat.html
在托管区域和记录的名称中使用星号 (*) 您可以创建名称中包含 * 的托管区域。请注意以下事项:
您不能在域名的最左侧标签中包含 *。例如,不允许使用 *.example.com。
如果在其他位置包含 *,DNS 会将其视为 * 字符 (ASCII 42),而不是通配符。
您还可以创建名称中包含 * 的记录。DNS 将 * 字符视为通配符或 * 字符 (ASCII 42),具体取决于它在名称中的出现位置。请注意以下关于在记录名称中使用 * 作为通配符的限制:
* 必须替换域名中最左边的标签,例如 .example.com。它不能替代任何中间标签,例如营销。.example.com。
* 必须替换整个标签。例如,您不能指定 prod.example.com 或 prod .example.com。
对于类型为 NS 的记录,不能使用 * 作为通配符。
对于记录,如果您在域名最左侧标签以外的任何位置包含 *,DNS 会将其视为 * 字符 (ASCII 42),而不是通配符。
之后,您可以在 API 中获取请求的子域并为其执行特定操作,例如,使用子域通过用户名选择用户。
编辑:
不幸的是,AWS API Gateway 不支持通配符子域名,正如我们在此链接的第一点中所见:
Api Gateway 已知问题
编辑 2: 现在 AWS API 网关支持通配符子域: API 网关通配符子域谢谢@justin 裁缝
| 归档时间: |
|
| 查看次数: |
4932 次 |
| 最近记录: |