RequestEntityTooLargeException для лямбда-вызова - PullRequest
0 голосов
/ 17 мая 2018

У меня есть лямбда-функция, вызывающая другую лямбда-функцию с использованием лямбда-функции invoke :

lambda.invoke({
    FunctionName: 'MyOtherLambda',
    InvocationType: 'Event',
    Payload: myBigObject
}, callback);

Я использую InvocationType: 'Event', чтобы остановить первую лямбда-функцию без ожидания MyOtherLambdaзаканчивать.Дело в том, что я получаю следующую ошибку:

RequestEntityTooLargeException: 179206 байт полезной нагрузки слишком велика для типа вызова события (ограничение 131072 байта)

удаление InvocationType: 'Event' действительнозаставляет это работать, но лямбда продолжает работать даром.Я попытался использовать устаревший метод invokeAsync , но это приводит к той же ошибке.

Как передать большую полезную нагрузку, не дожидаясь завершения второй лямбды, и почему размерПолезная нагрузка ограничена при использовании InvocationType: 'Event'?

1 Ответ

0 голосов
/ 17 мая 2018

Согласно документации размер полезной нагрузки 128 КБ ограничен с использованием типа вызова Event.RequestResponse тип вызова (по умолчанию) допускает 6 МБ.

  • Один из способов обойти это - загрузить файл на S3 в первую лямбду, а затем передать ведро и ключ в качестве полезной нагрузки во вторую лямбду.

  • Вы также можете использовать 2-й лямбда-триггер для загрузки на S3 .

...