我有一个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服务会抛出此异常吗?
还有什么可以避免这种情况?
按照AWS,它说:
限制旨在保护您的资源和下游应用程序。尽管Lambda automatically scales可以容纳您的传入流量,但您的功能仍然可以由于各种原因。
从技术上讲,这可能是编程错误,或者您看到的调节器可能不在Lambda函数上。函数调用期间,<< API调用>>上也可能出现节流。我会从AWS文档中提出一些关于如何识别造成限制的原因:验证您是否在Amazon CloudWatch Logs中看到限制消息,但在Lambda Throttles指标中没有相应的数据点。如果没有Lambda Throttles指标,则您的Lambda函数代码中的API调用会发生限制。