【问题标题】:API Gateway custom domain ERR_NAME_NOT_RESOLVEDAPI Gateway 自定义域 ERR_NAME_NOT_RESOLVED
【发布时间】:2019-07-24 09:30:32
【问题描述】:

我按照 AWS 文档中的步骤为我的 API 设置自定义域。

我有一个带有版本化的区域 API 的设置,我决定将每个版本保存在单独的 API Gateway API 中,如下所示:

test_api_v1
test_api_v2
etc.

我为每个 API 创建了一个自定义域和路径映射,如下所示:

+---------------------------------------+
|           GetBasePathMappings         |
+----------+-------------+--------------+
| basePath |  restApiId  |    stage     |
+----------+-------------+--------------+
|  v2      |  api-id-v2  |  production  |
|  v1      |  api-id-v1  |  production  |
+----------+-------------+--------------+

然后在Route53中创建对应的记录:

{
    "Name": "test-api.mydomain.com.",
    "Type": "CNAME",
    "AliasTarget": {
        "HostedZoneId": "Z1U9ULNL0V5AJ3",
        "DNSName": "d-abcdef1234.execute-api.eu-central-1.amazonaws.com.",
        "EvaluateTargetHealth": false
    }
}

附:我还尝试使用A 记录,而不是CNAME;结果是一样的。

现在问题出在这样一个事实,即连续执行几次test-api.mydomain.com,我得到的记录有时显示,有时什么也没有,浏览器显示ERR_NAME_NOT_RESOLVED

我该如何解决这个问题?我该如何进一步调试它?

【问题讨论】:

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


    【解决方案1】:

    所以只要看看文档,你就必须拥有以下内容;

    在开始之前,您需要以下内容:

    具有自定义域名(例如 api.example.com)的 API Gateway API,该域名与您要创建的 Route 53 记录的名称相匹配。

    注册域名。您可以使用 Amazon Route 53 作为域注册商,也可以使用其他注册商。

    Route 53 作为域的 DNS 服务。如果您使用 Route 53 注册您的域名,我们会自动将 Route 53 配置为该域的 DNS 服务。

    当您创建路线 53 记录时。指定以下值:

    名称: 输入您要用于将流量路由到您的 API 的域名。

    您要将流量路由到的 API 必须包含与 Route 53 记录的名称匹配的自定义域名,例如 api.example.com。

    类型:选择 A – IPv4 地址。

    别名:选择是。

    别名目标:如何指定别名目标的值取决于您是使用相同的 AWS 账户还是不同的账户创建托管区域和 API:

    同一帐户 – 选择列表,然后找到 API 网关 API 类别。目标域名列表仅包括具有与您为 Name 指定的值匹配的自定义域名的 API。选择适用的值。

    路由策略:选择适用的路由策略。有关详细信息,请参阅选择路由策略。

    Evaluate Target Health:接受默认值 No。

    【讨论】:

    • 感谢您的回复!我满足文档中列出的所有先决条件。我还完全按照描述在 route53 中配置了我的记录集(如果您查看我提供的 JSON,您应该会看到,或者我错过了什么?)。请问您还有什么想法吗?
    • 您的 json 显示 CNAME 而非 A 记录的配置。
    • 对不起。我指定(在 sn-p 之后)我也尝试过使用 A 记录。但遗憾的是,这也不起作用。
    • 所以另一个建议是。每个 Route 53 托管区域都有一组单独的名称服务器。您的域应该与这些确切的名称服务器相关联。查看托管区域,获取名称服务器并转到 Route 53 管理控制台中的“注册域”。选择您的域,您将在显示的详细信息页面上看到与该域关联的名称服务器。这些可能与托管区域中的不匹配。如果是这种情况,请将它们替换为托管区域中的名称服务器。
    • @Victor 对于区域端点来说是正常的——它们不支持 HTTP 根本——只支持 HTTPS。尝试端口 443。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-26
    • 2021-06-17
    • 2020-10-04
    • 2018-05-29
    • 2018-06-20
    • 2020-01-16
    • 2018-07-02
    相关资源
    最近更新 更多