错误AWS Lambda SDK:名称解析暂时失败

时间:2020-11-02 19:28:15

标签: aws-lambda boto3 amazon-vpc

在突发应用程序过程中的AWS lambda中。我们在VPC中创建并运行约4k lambda。此lambda会将文件从一个AWS账户复制到另一个账户。在超过4k的调用期间,<5k,我们已通知所有boto3客户端帐户开始失败。

在某个时候我们开始接受

urllib3.exceptions.NewConnectionError: <位于0x7fab54f6ae20的: 无法建立新的连接:[Errno -3]临时故障 名称解析botocore.exceptions.EndpointConnectionError:无法 连接到端点URL:“ https://.s3.amazonaws.com/”

其次是以前成功的事情,但现在又出错了:

收到以下错误

n无法连接到端点URL:“ https://sts.amazonaws.com/” [错误] 2020-11-02T18:50:05.867Z b2bc9529-0ea5-40f1-ba0e-98d9cf26eb2c 收到以下错误消息n无法连接到端点URL: “ https://sts.amazonaws.com/”

突发之后,这些错误消失了。

我想知道这里是什么问题,以便我可以开始解决此问题,但是我不知道从哪里开始寻找?

我确实找到了这个问题,似乎是我的问题:Occasional 'temporary failure in name resolution' while connecting to AWS Aurora cluster,尽管有了这个答案,我仍然不清楚当我无法再连接到AWS服务时该怎么办?

在查看VPC流日志时,我在以下时间范围内记录日志:

2个未知的eni-034e0bc6a93976fcb-------1604344032 1604344205- NODATA

2个未知的eni-034e0bc6a93976fcb 10.XXX.XX.XXX 10.XXX.XX.XXX 45844 2049 6 10 866 1604344061 1604344176接受,确定

但是我不知道这意味着什么,或者它是否指示问题。

2 个答案:

答案 0 :(得分:1)

听起来像DNS请求配额问题。参见DNS quotas

另外,请参见Occasional 'temporary failure in name resolution' while connecting to AWS Aurora cluster进行讨论和提出一些解决方案。

答案 1 :(得分:0)

感谢您对我对问题的回答提供反馈:Occasional 'temporary failure in name resolution' while connecting to AWS Aurora cluster。自从我发布该答案以来,我们已经通过增加 AWS Hyperplane 创建的 ENI 数量来解决该问题。

正如您所暗示的,jarmod 还指出:一秒内可以发送到 Amazon Route 53 解析器的数据包数量上限为 - 每个 ENI 1024 个。

有趣的是,虽然这个数字是一个硬性限制,但它与单个 ENI 相关。因此,增加 ENI 的数量将允许您每秒向 Amazon Route 53 解析器发送更多数据包。可以通过增加 VPC 中安全组:子网组合的数量来增加 Lambda 使用的 ENI 数量。实现这一目标的两种方法是:

  • 将不同的安全组附加到不同的 Lambda 函数
  • 在多个子网中托管您的 Lambda 函数

最后,了解 AWS Hyperplane 创建 ENI 的方式和时间很重要:

<块引用>

Hyperplane 现在会在首次创建 Lambda 函数或更新其 VPC 设置时创建共享网络接口,从而提高函数设置性能和可扩展性。此一次性设置最多可能需要 90 秒才能完成

有关 AWS Hyperplane、安全组:子网组合及其与 ENI 的关系的更多信息,请参阅 Improved VPC Networking for AWS Lambda Functions

爱米奇:)