【发布时间】:2021-12-29 02:15:21
【问题描述】:
我正在尝试在 node.js Lambda 函数中预取 DNS 记录。我已经检测了我的 http 请求(使用 Sentry),以显示套接字完成 dns 查找需要多长时间,以及建立 TCP 连接需要多长时间。
当我在我的机器上本地运行该函数时,它可以工作 - http 请求几乎不需要任何时间来执行查找
但是当我在 AWS Lambda 上运行该函数时,DNS 查找仍然需要一些时间,就好像预取没有填充查找表一样。这是实现:
import dns from 'dns'
export const dnsPrefetch = url => {
const address = new URL(url).hostname
dns.lookup(address, { hints: dns.ADDRCONFIG }, () => {})
}
然后在一个模块中,我可能会这样使用它:dnsPrefetch('https://url.to/graphql')
知道为什么 DNS 预取不能在 Lambda 上运行吗?
【问题讨论】: