【发布时间】:2021-06-17 12:25:21
【问题描述】:
我使用 AWS API Gateway 创建了一个 api,并希望将自定义域名附加到它。我关注了这个tutorial 并做了以下事情:
- 在证书管理器上创建了新证书(
mydomain.io和*.mydomain.io) - 为 GoDaddy 添加了 CNAME(因为我的 CNAME 是从 Godaddy 购买的)
- 在API网关上设置
api-dev.mydomain.io>自定义域名,并在“API Mappings”中映射到API和dev阶段。 - 在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