Лямбда не выполняет функцию сна должным образом python - PullRequest
0 голосов
/ 02 мая 2020

Я использую sleep внутри своей лямбда-функции, чтобы заставить ее спать в течение 4 минут

import time

def lambda_handler(event, context):
    print("hi")
    time.sleep(240)
    print("bye")
    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }

Получение этого

Не удалось вызвать действие API вызова с этим сообщением: Ошибка сети

но выполнение лямбды завершается за 1 секунду, любая конкретная c причина для этого.

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

Ответы [ 2 ]

0 голосов
/ 03 мая 2020

Время ожидания лямбды по умолчанию составляет 3 секунды. Для обновления go на консоли Lambda и выберите свою Lambda. Затем немного прокрутите вниз до «Basi c Settings». Выберите это:

enter image description here

И обновите по мере необходимости. Вы можете выделить чуть более 4 минут.

Если вы используете aws cli, вы можете запустить что-то вроде:

aws lambda update-function-configuration --function-name functionName --timeout 240

для изменения лямбда-функции functionName на время ожидания 240 секунд.

0 голосов
/ 02 мая 2020

При вызове функции из Lambda необходимо указать ее параметры. Ваша функция принимает 2 параметра. Попробуйте перебрать входные данные из iterable a и вызвать для каждого набора параметров лямбду:

import time
import json

def lambda_handler(event, context):
    print("hi")
    time.sleep(3)
    print("bye")
    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }

a = [('contxt1', 'evt1'), (('contxt2', 'evt2'))]

b = list(map(lambda x: lambda_handler(x[0], x[1]), a))

print(b)
...