AWS Lambda: невозможно продолжить обратный вызов в случае ошибки

Я пытаюсь вызвать лямбда-функцию. Функция работает, когда доступны данные resolve (), но при возникновении ошибки она не выполняет обратный вызов, а просто выдает ошибку.

lambda.invoke({
        FunctionName: 'cognitoFunction',
        Payload: JSON.stringify({
            email: slots.Email
        })
    }, function(err, data) {
        if(err) { // Does not work

            callback(close3(sessionAttributes, { "contentType": "PlainText", "content": "ERROR" }));

        }
        else { // This part works
            callback()
        }
    });

"errorType": "DependencyFailedException",

"errorMessage": "Недопустимый лямбда-ответ: от лямбда-выражения получен ответ об ошибке: необработано"


person John C    schedule 28.01.2020    source источник


Ответы (1)


Я разобрался в проблеме. Ошибка переходит в 'data', а не в 'error':

lambda.invoke({
        FunctionName: 'functionName',
        Payload: JSON.stringify({
            email: slots.Email
        })
    }, function(error, data) {
        if(error){
            callback(...)
        }
        else {
            data = JSON.parse(data.Payload);
            if(data.errorMessage) { // The error output is in here
                callback(close(sessionAttributes, { "contentType": "PlainText", "content": data.errorMessage }));
            }
        }
    });
person John C    schedule 29.01.2020