Лямбда-функция для запроса AWS Афина дает тайм-аут - PullRequest
0 голосов
/ 22 апреля 2020

Я написал лямбда-функцию, используя athena- express, которая запрашивает AWS Athena с файлами S3 Parquet в качестве места назначения. Также используется AWS Клей для процессов ETL к S3. Я получаю: « Задание истекло через 6,01 секунды ». Увеличение времени ожидания дает мне то же сообщение, но с большим количеством секунд ожидания. Странно то, что он работает локально, но не при развертывании на AWS. Код должен работать. Я думаю, что-то не хватает в AWS конфигурациях.

Я следовал инструкциям и использовал настройки лямбды: https://www.npmjs.com/package/athena-express. Я добавил политики AmazonAthenaFullAccess и AmazonS3FullAccess в роль выполнения для функции Lambda.

1 Ответ

0 голосов
/ 22 апреля 2020

Когда вы говорите, что он работает локально, я предполагаю, что когда вы запускаете его локально, у вас нет времени ожидания в коде. Athena не является базой данных с низкой задержкой, и запросы очень редко выполняются менее чем за несколько секунд, а часто и за минуты - все зависит от того, сколько данных они сканируют, и других факторов.

Ваша функция Lambda должна иметь тайм-аут, превышающий самое длинное время выполнения запросов, которые вы выполняете с ним. Если эти запросы выполняются более минуты, время ожидания должно быть больше минуты, если они выполняются более десяти минут, время ожидания должно превышать десять минут и т. Д.

В общем, длительные запросы не очень подходят для Lambda и API Gateway, которые созданы для ситуаций с более низкой задержкой. Поскольку ваши запросы, кажется, выполняются в течение нескольких минут, я предлагаю вам поискать другие способы решения вашей проблемы. Если вы предоставите больше информации о том, что вы пытаетесь сделать, мы можем помочь вам в этом.

...