Лямбда-функция истекает после окончания - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть лямбда-функция, которая завершается без ошибок (я попадаю в строку console.log()), но время ожидания истекло. Я попытался отладить с lambda-local, но не могу найти, где задержка. Я прочитал несколько мест, которые я должен включить context.callbackWaitsForEmptyEventLoop = false в моей функции обработчика, но это не делает разницы ошибка. Есть что-то еще, что я пропускаю или не вызываю, что мешает этой функции не отключиться? После того, как функция consol.log() напечатана, END RequestID и REPORT RequestID, эта ошибка печатается 2018-11-05T23:42:24.357Z 705cea03-e154-11e8-8089-87f7086f1090 Task timed out after 3.00 seconds

Вот функция моего обработчика:

exports.handler = function(event, context, callback) {
    context.callbackWaitsForEmptyEventLoop = false
    let alexa = Alexa.handler(event, context);
    alexa.APP_ID = APP_ID;
    // To enable string internationalization (i18n) features, set a 
resources object.
    alexa.resources = languageStrings;
    alexa.registerHandlers(handlers);
    alexa.execute();
    console.log("You made it.")
};

1 Ответ

0 голосов
/ 06 ноября 2018

Вам не хватает обратного вызова.

exports.handler = function(event, context, callback) {
    context.callbackWaitsForEmptyEventLoop = false
    let alexa = Alexa.handler(event, context);
    alexa.APP_ID = APP_ID;
    // To enable string internationalization (i18n) features, set a 
resources object.
    alexa.resources = languageStrings;
    alexa.registerHandlers(handlers);
    alexa.execute();
    console.log("You made it.")
    callback(null,"Complete");
};

Так как вы отключили callbackWaitsForEmptyEventLoop. Будет ждать, пока вы не начнете вызов функции callback.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...