Запрос Python в AWS Lambda time out

Я пытаюсь сделать http-запрос от моего AWS Lambda, но это время.

Мой код выглядит примерно так:

import requests def lambda_handler(event, context): print('Im making the request') request.get('http://www.google.com') print('I recieved the response') 

Но когда я проверяю это, я получаю таймаут.

Выход

 Im making the request END RequestId: id REPORT RequestId: id Duration: 15003.25 ms Billed Duration: 15000 ms Memory Size: 128 MB Max Memory Used: 18 MB 2016-04-08T20:33:49.951Z id Task timed out after 15.00 seconds 

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

Я столкнулся с такой же проблемой тайм-аута , причина ниже.

Документ AWS :

Когда вы добавляете конфигурацию VPC в функцию Lambda, она может получать доступ только к ресурсам в этом VPC. Если функции Lambda необходимо получить доступ к ресурсам VPC и общедоступному Интернету, VPC должен иметь экземпляр преобразования сетевых адресов (NAT) внутри VPC.

Возможно, есть некоторая ошибка при настройке VPC. Я советую вам следить за этим блогом, чтобы создать NAT.

Функция Lambda с доступом VPC не будет иметь доступ к Интернету, если вы не добавите шлюз NAT к VPC. Вы должны прочитать раздел «Что нужно знать» объявления поддержки Lambda VPC .

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

Вы можете увеличить период ожидания для запроса, выполнив следующие действия:

 response = requests.get(url, timeout=60) 

Кроме того, вам потребуется увеличить период ожидания для вашей лямбда-функции. Сделать это:

  • Откройте свою лямбда-функцию в AWS
  • Выберите «Конфигурация», затем «Дополнительные настройки»,
  • Увеличьте время ожидания (до 5 минут)
  • Выберите «Сохранить»

Кроме того, я считаю, что request.get должен быть «request.get».

Просто увеличьте время ожидания функции лямбда в Конфигурации -> Расширенные настройки -> Тайм-аут. Это решит вашу проблему.

Значение по умолчанию для тайм-аута в Lambda составляет 3 секунды = 3000 микросекунд. Перейдите в раздел «Дополнительные настройки» и добавьте 5 минут. Это может быть единственной проблемой, если таймаут происходит ровно через 3 секунды. Все другие ошибки занимают нечто большее или меньшее.