AWS Lambda останавливается на полпути при выполнении функции - PullRequest
0 голосов
/ 12 июня 2018

Я попытался выполнить две функции, импортированные из двух разных файлов в лямбда-выражении aws:

const tag_test = require("./tag.js");
const login_logout = require("./login_logout.js");

exports.handler = async function(event, context) {
    await tag_test.tag();
    await login_logout.login();
    console.log("all tests done.");
}

Первая функция была выполнена нормально, но при запуске второй функции лямбда остановилась в одной точке и подождала, покавесь процесс истекЯ подозреваю, что он остановился прямо перед let browser, потому что в журнале консоли я вижу "opening up browser", но не "got browser".

module.exports.tag = async() => {
    console.log("starting test 2");
    const puppeteer = require('puppeteer-lambda');

    console.log("opening up browser");

    let browser = await puppeteer.getBrowser(
        '--no-sandbox',  
        '--disable-gpu',
        '--single-process'
        );
    console.log("got browser");
    let page = await browser.newPage();
    console.log("got page");

    //my test
    //...

}

Кто-нибудь знает, что пошло не так?

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Решено.

Это на самом деле проблема кукловода-лямбды.По-видимому, вы не можете открыть браузер, закрыть его, а затем снова открыть его на AWS lambda с puppeteer-lambda.Я открыл и позже закрыл браузер в своем первом тесте, и это заставило мой второй тест зависнуть на let browser.

. Чтобы решить эту проблему, я позволил первому тесту вернуть браузер и передать его во второй тест.для повторного использования.

0 голосов
/ 12 июня 2018

увеличение времени ожидания лямбды.по умолчанию 3 секунды.

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