【问题标题】:Route 53 Subdomains and API GatewayRoute 53 子域和 API 网关
【发布时间】:2020-11-11 09:06:24
【问题描述】:

我有一个通过 Route 53 托管的域,名为 foo.com,一切都很好。我在 Route 53 中创建了 NS 和 SOA 记录:

foo.com. NS
ns-1609.awsdns-09.co.uk. 
ns-431.awsdns-53.com. 
ns-1071.awsdns-05.org. 
ns-662.awsdns-18.net.

foo.com. SOA
ns-1609.awsdns-09.co.uk. awsdns-hostmaster.amazon.com.

我们还按帐户对我们的平台进行细分。因此,我们有一个支持我们的 DEV 环境的 AWS 子账户(遵循 AWS 文档:https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-routing-traffic-for-subdomains.html)。因此,在我们的 foo.com 托管区域内,我们也有一个条目:

devapi.foo.com. NS
ns-3476.awsdns-09.co.uk. 
ns-2341.awsdns-76.com. 
ns-3245.awsdns-56.org. 
ns-294.awsdns-67.net.

在我们的 AWS DEV 账户中,我们有一个具有完全相同 NS 记录的 devapi.foo.com 托管区域:

devapi.foo.com. NS
ns-3476.awsdns-09.co.uk. 
ns-2341.awsdns-76.com. 
ns-3245.awsdns-56.org. 
ns-294.awsdns-67.net.

连同指向 DEV API 网关的 SOA 记录和 A 记录:

devapi.foo.com. A  ALIAS f-8wdjr4hvgh.execute-api.us-east-2.amazonaws.com.

其中 f-8wdjr4hvgh.execute-api.us-east-2.amazonaws.com. 是 API 网关的域名。

我有一个 devapi.foo.com

的自定义域映射

不幸的是,在所有这些中,devapi.foo.com 是不可 ping/可路由的。如果你 ping 它,它会返回一个 IP 地址,但是 icmp_seq* 的请求超时 ...

如果我对 devapi.foo.com 使用 https://www.whatsmydns.net/#A/,我会得到绿色复选标记,但我相信这告诉我的只是域名是可解析的。

对我缺少什么的想法?

跟进:问题出在自定义域映射和基本路径上。

【问题讨论】:

  • API 网关不允许 ping(默认情况下,AWS 中的几乎所有内容都会阻止 ICMP)。是不是有其他东西不起作用?
  • 我可以使用 AWS 生成的端点访问通过 API Gateway 部署的服务。但是,我无法使用 devapi.foo.com URL 访问服务(403 禁止错误),这样的调用甚至没有在 API Gateway Cloudwatch 日志中注册,这让我相信问题出在以及我如何发送 Route 53 托管区域。我可以解析 AWS 为 API Gateway 生成的 DNS 名称(A 记录中的别名),因为它给了我一个 IP 地址(我可以 ping f-8wdjr4hvgh.execute-api.us-east-2 .amazonaws.com 并返回一个 IP 地址)。
  • 噢!我的错,一切都配置正确,除了我如何拥有自定义域映射。我将结束这个问题,但把它留在这里,因为我相信它提供了一个很好的例子,说明当您在不同的子域/帐户中有 DEV、TEST 等时如何进行子域托管。
  • @PerryHoekstra 如果需要,您可以回答自己的问题并提供更多详细信息。

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


【解决方案1】:

我遇到了一个问题,我去设置一个将我的自定义子域映射到我的 API 网关的记录。当我选择实际端点时,我收到一条红色警告/错误消息,提示“无法检索端点建议”

设置所有内容的说明如下: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-api-gateway.html

在做我想做的事情之前,先决条件(在链接页面上说明)是:

  1. 具有与您要创建的 Route 53 记录的名称匹配的自定义域名(例如 api.example.com)的 API 网关 API。
  2. 注册的域名。您可以使用 Amazon Route 53 作为您的域注册商,也可以使用其他注册商。
  3. Route 53 作为域的 DNS 服务。如果您使用 Route 53 注册您的域名,我们会自动将 Route 53 配置为该域的 DNS 服务。

我意识到我没有完成第 1 步。这需要通过 API Gateway 接口完成,而不是 Route 53 接口。如果您还没有为域(不是子域,而是域)执行此操作,您可能需要做一些工作来为域设置证书。这涉及在您的域注册表中放置一种看起来像魔术键的条目(使用 Route 53 或您用来注册域的任何东西),以便亚马逊知道您拥有该域。

一旦设置了这个自定义域(同样,在 API Gateway 部分,而不是 Route 53),我就能够在 Route 53 中创建一条记录,并且现在检测到我的 API Gateway 端点可供选择。

【讨论】:

    猜你喜欢
    • 2018-12-19
    • 2019-12-26
    • 1970-01-01
    • 2019-09-27
    • 2017-05-13
    • 1970-01-01
    • 2016-09-14
    • 2023-02-15
    • 2017-02-14
    相关资源
    最近更新 更多