跳至内容

如何排查 Lambda DNS 相关错误?

1 分钟阅读
0

当我尝试访问主机时,我在 AWS Lambda 函数中遇到与 DNS 相关的错误。

解决方法

Lambda 中与 DNS 相关的错误(例如 "Temporary failure in name resolution" 、getaddrinfo"、"ENOTFOUND" 和 "ETIMEDOUT")是持续性出现是间歇性出现,具体取决于您的网络环境。

排查与 DNS 相关的持续性错误

DNS 服务器配置错误、权限不正确和网络连接问题均可能导致与 DNS 相关的持续性错误。

完成以下操作:

  • 如果您通过具有 Amazon Virtual Private Cloud (Amazon VPC) 连接的 Lambda 函数访问公共资源,请检查您的配置要求。确保 Lambda 函数具有互联网访问权限。
  • 如果您访问私有资源,请验证是否为 Lambda 函数配置了正确的 VPC 和 DNS 服务器。
  • 在 VPC 中使用自定义动态主机配置协议 (DHCP) 选项集时,请务必验证 DNS 响应。使用 Amazon Route 53 Resolver 查询日志来验证 DNS 查询响应。
  • 使用与 Lambda 相同的网络配置运行您的 Amazon Elastic Compute Cloud (Amazon EC2) 实例。然后,验证您是否可以解析并到达端点。
  • 对于 "ENOTFOUND" 错误,请验证主机名是否正确。
  • 使用 IP 地址而不是主机名来访问目标。这样,您就可以确认问题是由主机名解析还是缺失端点路由所导致。
  • 确保 Lambda 函数的安全组和网络访问控制列表(网络 ACL)允许流向所需端口和 IP 范围的入站流量。
  • 对于 "UNKNOWNHOSTEXCEPTION" 错误,您的函数可能已达到 DNS 解析的 20 个并发 TCP 连接上限。如果您的 Lambda 函数因 DNS 有效载荷过大而回退到 TCP DNS,请确认您的解决方案使用的库支持 EDNS。有关详细信息,请参阅 DNS: UNKNOWNHOSTEXCEPTION,无法连接到主机。

排查与 DNS 相关的间歇性错误

网络拥塞和高网络流量可能会导致间歇性的 DNS 相关错误。

完成以下操作:

相关信息

How do I troubleshoot partial or intermittent DNS failures related to Amazon VPC?(如何排查与 Amazon VPC 相关的部分或间歇性 DNS 故障?)

Lambda 中的联网问题疑难解答

AWS 官方已更新 6 个月前