API 网关自定义域名 getaddrinfo ENOTFOUND

API Gateway Custom Domain Name getaddrinfo ENOTFOUND

我已经使用 AWS API 网关创建了一个 api,并想为其附加一个自定义域名。我遵循了这个 tutorial 并完成了以下操作:

  1. 在证书管理器(mydomain.io*.mydomain.io)上创建了新证书
  2. 向 GoDaddy 添加了 CNAME(因为我的是从 Godaddy 购买的)
  3. 在API网关上设置一个api-dev.mydomain.io > 自定义域名,并在“API映射”中映射到API和开发阶段。
  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],
    ...

我错过了什么?

根据评论。

问题是 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 中所述。