Неопределенная ошибка «Превышена скорость» от AWS Lambda - PullRequest
0 голосов
/ 10 сентября 2018

Я получаю расплывчатую ошибку "Rate Exceeded" при вызове AWS Lambda от другого. Есть ли способ отследить, какая скорость превышается?

У меня есть процесс, который принимает файл и помещает каждую строку в поток Kinesis. Существуют лямбда, настроенные на использование потока Kinesis в качестве источника событий. Цель - максимально быстро обработать большие файлы.

Поток Kinesis настроен на 50 осколков. Ошибка «Превышена скорость» возникает, когда лямбда-прослушивание событий Kinesis вызывает другую лямбду.

Вот блок catch, фиксирующий ошибку:

    } catch (ex) {
        if (ex instanceof RetryableError) {
            console.error('Error processing record, retry enabled.', ex);
        } else {
            console.error('Error processing record, retry disabled.', ex);
        }
    }

Журналы CloudWatch показывают:

2018-09-10T06:55:03.454Z    d04484eb-e006-4180-8618-0c543497a637    Error processing record, retry disabled. Error: 500 - "Rate exceeded"
at httpRequest.then.catch.err (/var/task/fileProcessor/streamProcessor/index.js:105442:19)
at tryCatcher (/var/task/fileProcessor/streamProcessor/index.js:5811:23)
at Promise._settlePromiseFromHandler (/var/task/fileProcessor/streamProcessor/index.js:76426:31)
at Promise._settlePromise (/var/task/fileProcessor/streamProcessor/index.js:76483:18)
at Promise._settlePromise0 (/var/task/fileProcessor/streamProcessor/index.js:76528:10)
at Promise._settlePromises (/var/task/fileProcessor/streamProcessor/index.js:76603:18)
at Async._drainQueue (/var/task/fileProcessor/streamProcessor/index.js:76829:16)
at Async._drainQueues (/var/task/fileProcessor/streamProcessor/index.js:76839:10)
at Immediate.Async.drainQueues (/var/task/fileProcessor/streamProcessor/index.js:76713:14)
at runCallback (timers.js:794:20)
at tryOnImmediate (timers.js:752:5)
at processImmediate [as _immediateCallback] (timers.js:729:5)

Обычно первые 1-10 (из 5000) строк обрабатываются нормально. Тогда эта ошибка завершается ошибкой остальных строк.

Согласно странице Lambda Monitor, максимальное число одновременных выполнений составляет 492, и это N. Вирджиния, поэтому ограничение равно 1000. Однако отладка показала, что ошибка вызывается кодом, который отправляет HTTP-запрос на вызов. другая лямбда.

Я проверил журналы CloudWatch другой Lambda, и каждый запрос обрабатывается правильно. Похоже, что обработка запросов Lambda блокируется этой ошибкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...