1

我在API网关上设置了一个自定义域名,它是一个子域名。 api.example.com。网关端点指向lambda函数。当对子域进行GET请求时,偶尔(经常)会收到错误“无法找到服务器DNS地址”。看起来它可能与Lambda冷启动有关,但我无法确定。如果它与冷启动有关,请求是否超时或挂起,而不是发送回来,特别是DNS错误? DNS错误让我觉得冷启动Lambda不是问题。AWS API网关自定义域名偶尔出现“无法找到服务器DNS地址”

此外,我需要在它开始返回成功响应之前点击5-10次。我现在手动执行此操作,因此每个请求之间会有短暂的暂停。

该错误似乎也是域特定的。如果在一个浏览器选项卡中,我发出请求5次以上,它会开始成功返回,但是从另一台服务器,某个域中的某个域,我必须击中它5次以获得成功的响应,即使它当前正从另一个域或服务器。对我来说,这排除了lambda冷启动问题,不是吗?

该域名在路由53中注册。我拥有一个example.com托管区域,并且在该托管区域中,我有一个api.example.com的A记录。当我添加自定义域时,A记录目标由API网关设置为CloudFront公共DNS设置。

我的一个问题是:这个配置是否不正确?子域是否应该位于其自己的托管区域中,并且在父域中创建的api.example.com的新NS记录指向子域的托管区域?这个配置可能是我的问题吗?

回答

1

我不认为这与Lambda的冷启动有关。 你似乎有DNS记录的问题。 DNS记录最多需要48小时才能传播。如果您仍然看到此问题,我鼓励您联系Route53支持。他们应该能够帮助你解决DNS问题。

+0

谢谢,我会继续关注它。它已经不到48小时,所以这可能是。我会让你知道 – adamgedney

+0

我接受这个答案。果然,48小时后,不一致的DNS错误消失了。看起来它可能与Route 53中的初始TTL设置有关。创建NS记录时,设置为48小时。我迅速将其切换到1分钟,但仍需要最初48小时的TTL时间才能传播。 – adamgedney