Как определить, что вызывает исключение регулирования в AWS лямбда-выражениях и как с ним справиться - PullRequest
0 голосов
/ 28 марта 2020

У меня есть node.js лямбда, которая подписывается на очередь SQS и делает вызов REST API для микросервиса для каждого сообщения из SQS.

Теперь, когда лямбда выполняется, я получаю следующее исключение

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

Я не могу понять, что служба AWS выдает это исключение. Это исключение выдается моей лямбдой или каким-то другим AWS сервисом?

И что можно сделать, чтобы этого избежать?

1 Ответ

1 голос
/ 28 марта 2020

Согласно AWS, в нем говорится:

Регулирование предназначено для защиты ваших ресурсов и последующих приложений. * * * * * * * * * * * * * * * * * * * * *

* * * * * * * * * * * * * * *1014* *1014* * * * * * * * * * * * * *1014* *1014* *1012* *1014* * * * * * * * * * * * *1014* * * 1014 ошибка или возможно, что дроссели, которые вы видите, отсутствуют в вашей лямбда-функции. Дросселирование также может происходить при вызовах API во время вызова вашей функции. Я добавлю некоторые пункты из AWS документации по , как определить , что вызывает регулирование:
  1. Убедитесь, что вы видите сообщения регулирования в журналах Amazon CloudWatch, но нет соответствующих точек данных в метриках лямбда-дросселей. Если метрик лямбда-дросселей отсутствует, регулирование происходит при вызовах API в коде функции Lambda.
  2. Проверьте код функции на наличие любых вызовов API-регулирования. Если некоторые вызовы API удушены, обязательно используйте экспоненциальный откат в своем коде, чтобы повторить вызовы API.
  3. Если вы решите, что для квоты требуется больше транзакций в секунду (TPS), При вызове API вы можете запросить увеличение квоты на услуги , если квота регулируется.

Источник

...