Почему лямбда-функции AWS В VPC иногда истекает время ожидания, а иногда работает нормально?

У меня есть некоторые лямбда-функции в VPC, некоторым из них для работы нужен Интернет, поэтому я добавил экземпляр NAT (t2.micro), и проблема в том, что у меня некоторые функции иногда работают, а иногда и таймаут. Например, функция, которая вызывает FB API 80% времени, работает и 20% времени ожидания. Другая функция использует boto3 для создания спотового экземпляра 50% тайм-аута, и журналы дают мне.

2018-07-16T06: 35: 55.909Z 421f98dd-88c2-11e8-913a-63c8d6f276f3 Время ожидания задачи истекло через 100,10 секунды

Всякий раз, когда я повторно развертываю бессерверный проект, я сталкиваюсь с этой проблемой.

Я увеличил предел времени ожидания и объем памяти, но у меня та же проблема. Я уверен, что есть доступ к Интернету, но время ожидания некоторых лямбда-функций.

Как вы думаете, в чем проблема? Спасибо

Измените свой вопрос, указав больше подробностей, чем «функции не работают». Что содержится в журнале? Какие сообщения об ошибках вы получаете? Одни и те же функции постоянно работают / не работают, иногда они работают, а иногда нет? Пожалуйста, поподробнее!

John Rotenstein 17.07.2018 08:53

извините за это, я отредактировал свой пост спасибо

Bacem Mehri 17.07.2018 10:37

Итак, ваша проблема в том, что он достигает предела тайм-аута лямбда, это правильно? Вы исследовали, что занимает время в функции? Например, вызывает ли внешнюю службу и ожидает ответа? Или это требует больших вычислений, отнимающих время? Если бы вы поэкспериментировали, увеличив тайм-аут до 5 минут, все ли они завершились правильно? Используете ли вы нужно для функций подключения к VPC, потому что альтернативой является нет, подключите их к VPC, и тогда они могут получить доступ в Интернет напрямую без экземпляра NAT.

John Rotenstein 17.07.2018 14:06

Это также может произойти, если вы настроили функцию Lambda для работы в VPC а также в нескольких подсетях а также, в одной из подсетей неправильно настроена таблица маршрутов.

Michael - sqlbot 18.07.2018 02:06

@ Michael-sqlbot большое спасибо, что это была моя ошибка

Bacem Mehri 18.07.2018 04:00

Моя проблема была такой же, как у @BacemMehri. Может быть, комментарий Майкла можно превратить в ответ

ivarec 05.05.2019 19:18

Благодаря @ Michael-sqlbot - я думаю, что мы обнаружили проблему с тайм-аутом / ошибкой, которая заключалась не в том, что таблица маршрутов нашей подсети была неправильно настроена, а в том, что у нас была только 1 подсеть NAT на лямбде. Мы добавили еще 2, следуя этой сути, и теперь можем работать без тайм-аута. gist.github.com/reggi/dc5f2620b7b4f515e68e46255ac042a7

k00k 05.12.2019 01:27
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
5
7
1 462
1

Ответы 1

У меня было это, когда я использую Lambda в VPC (и для этого есть шлюз NAT и Интернет-шлюз).

Я случайно выбрал все подсети (включая общедоступную) для запуска Lambda, тогда как у него будет доступ к Интернету только из частных подсетей.

Отмените выбор общедоступной подсети и сохраните, и вы должны решить свою проблему.

Вот ссылка на статью из базы знаний, которую я использовал - https://aws.amazon.com/premiumsupport/knowledge-center/internet-access-lambda-function/

Другие вопросы по теме