如何识别是什么导致了AWS lambda中的节流异常,以及如何处理该异常

问题描述 投票:0回答:1

我有一个node.js lambda订阅一个SQS队列,并为来自SQS的每条消息对微服务进行REST API调用。

现在执行lambda时,出现以下异常

{
  "message": "Rate exceeded",
  "code": "ThrottlingException",
  "time": "2020-03-27T23:11:42.209Z",
  "requestId": "69f5c441-409h-493s-8da5-2361c5055fd8",
  "statusCode": 400,
  "retryable": true
}

我无法理解是什么AWS服务引发此异常。我的lambda或其他一些AWS服务会抛出此异常吗?

还有什么可以避免这种情况?

amazon-web-services aws-lambda throttling
1个回答
1
投票

按照AWS,它说:

限制旨在保护您的资源和下游应用程序。尽管Lambda automatically scales可以容纳您的传入流量,但您的功能仍然可以由于各种原因

从技术上讲,这可能是编程错误,或者您看到的调节器可能不在Lambda函数上。函数调用期间,<< API调用>>上也可能出现节流。我会从AWS文档中提出一些关于如何识别造成限制的原因:

    验证您是否在Amazon CloudWatch Logs中看到限制消息,但在Lambda Throttles指标中没有相应的数据点。如果没有Lambda Throttles指标,则您的Lambda函数代码中的API调用会发生限制。

  • 检查您的功能代码是否有任何受限制的API调用。如果某些API调用受到限制,请确保在代码中使用exponential backoff重试API调用。
  • 如果确定对于API调用需要更高的每秒事务(TPS)配额,则可以request a service quota increase,如果该配额是可调整的。
  • Source
  • © www.soinside.com 2019 - 2024. All rights reserved.