【问题标题】:API Gateway Custom Domain Name getaddrinfo ENOTFOUNDAPI Gateway 自定义域名 getaddrinfo ENOTFOUND
【发布时间】:2021-06-17 12:25:21
【问题描述】:

我使用 AWS API Gateway 创建了一个 api,并希望将自定义域名附加到它。我关注了这个tutorial 并做了以下事情:

  1. 在证书管理器上创建了新证书(mydomain.io*.mydomain.io
  2. 为 GoDaddy 添加了 CNAME(因为我的 CNAME 是从 Godaddy 购买的)
  3. 在API网关上设置api-dev.mydomain.io>自定义域名,并在“API Mappings”中映射到API和dev阶段。
  4. 在Route 53上,将api-dev.mydomain.io添加为A记录,并在步骤3中将其定向到API(API域名正确)。

据我所知,我相信我的设置应该是正确的,并且已等待 1 小时以使其“生效”。

然后我写了一个简单的脚本来测试它,但是它抛出了上面的错误。

代码:

const axios = require("axios")

let baseUrl = "https://api-dev.mydomain.io"
let key = MY_API_KEY
let headers = {
    headers: {
        "x-api-key": key
    }
}

let usersEndpoint = baseUrl + '/token?email=someemail@gmail.com'

axios.get(usersEndpoint, headers)
.then(response => {
    let data = response.data
    console.log(data)
})
.catch(err => console.log(err))

错误信息:

Error: getaddrinfo ENOTFOUND api-dev.mydomain.io
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:66:26) {
  errno: 'ENOTFOUND',
  code: 'ENOTFOUND',
  syscall: 'getaddrinfo',
  hostname: 'api-dev.mydomain.io',
  config: {
    url: 'https://api-dev.mydomain.io/token?email=someemail@gmail.com',
    method: 'get',
    headers: {
      Accept: 'application/json, text/plain, */*',
      'x-api-key': MY_API_KEY,
      'User-Agent': 'axios/0.21.1'
    },
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    adapter: [Function: httpAdapter],
    ...

我错过了什么?

【问题讨论】:

  • 如果您的域由GoDaddy 管理,您为什么使用R53?您是否将 GoDaddy 上的名称服务器更改为指向您在 R53 中的 HZ?
  • @Marcin 感谢您的回复。不,我没有。我该怎么做?
  • 问题是,您想从 R53 管理您的域还是继续使用 GoDaddy?有很多教程如何将 GoDdday 的名称服务器指向 R53,例如here.
  • @Marcin 我相信我更喜欢使用 GoDaddy。原因是我也在其他云提供商上使用我的域名,例如谷歌云。如果我从 R53 管理我的域,我想这会导致一些问题?
  • @Marcin 谢谢。我在 GoDaddy 上创建了api-dev.mydomain.io,现在一切正常。很高兴接受您的回答。

标签: node.js amazon-web-services aws-lambda aws-api-gateway


【解决方案1】:

基于 cmets。

问题在于 api-dev.mydomain.io 是在 Route 53 中创建的,而它由 GoDaddy 管理(名称服务器未更改为 Route 53)。

解决方案是在 GoDaddy 中创建 api-dev.mydomain.io 记录,而不是在 Route 53 中。

或者,要管理 Route 53 中的域,必须更新 GoDaddy 中的名称服务器以指向 Route 53 托管区域,如 Update the NS record with your current DNS service provider to use Route 53 name servers 中所述。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-04
    • 2018-05-29
    • 2019-07-24
    • 1970-01-01
    • 1970-01-01
    • 2018-03-23
    • 2018-07-25
    • 2021-03-22
    相关资源
    最近更新 更多