URL-адрес лямбда-вызова AWS, который занимает больше времени, чем предел выполнения лямбды

1

контекст

Я хочу запустить AWS Lambda, вызвать конечную точку (огонь и забыть), а затем остановить Лямбду - все это время конечная точка удаляется счастливо на нее.


попытки

1.

Использование тайм-аута, например

try:
    requests.get(url, timeout=0.001)

except requests.exceptions.ReadTimeout:
    ...

2.

Использование асинхронного вызова с помощью grequest:

import grequests
...

def handler(event, context):

    try:
        ...

        req = grequests.get(url)
        grequests.send(req, grequests.Pool(1))

        return {
            'statusCode': 200,
            'body': "Lambda done"
        }

    except Exception:
        logger.exception('Error while running lambda')
        raise

Эти запросы, похоже, не доходят до API, это почти похоже на отмену запроса.

Любые идеи почему?


Вопрос

Как Lambda может вызывать URL-адрес, который занимает много времени? Благодарю.

  • 0
    Как долго это долго ? AWS убьет вашу лямбда-функцию через 300 секунд. См. Docs.aws.amazon.com/lambda/latest/dg/limits.html.
  • 0
    Больше чем ограничение времени выполнения лямбды 300 с
Показать ещё 6 комментариев
Теги:
python-3.x
amazon-web-services
aws-lambda

2 ответа

0

Каждому, кто это читает: я исправил свою проблему, используя AWS Batch.

0

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

Тайм-аут, определенный внутри вашей функции, не влияет на функциональность лямбда. AWS Lambda убьет вашу функцию через 300 секунд независимо от тайм-аута, определенного внутри вашего скрипта. См. Https://docs.aws.amazon.com/lambda/latest/dg/limits.html.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню