Я хочу использовать пакет Node.js Chromeless в функции AWS Lambda. Я использую два пакета: chromless и serverless-chrome. На моем локальном компьютере мой тестовый сценарий работает нормально. Когда я развертываю его в Lambda, я получаю пустой результат для .html (). Результат - не пустая строка, это пустая страница. (‹Html> ‹head> ‹/head> ‹body> ‹/body> ‹/html>) В журналах CloudWatch нет ошибок. Кажется, что Chrome работает нормально, но не может загрузить веб-сайт. Версия NodeJS - 8.10, и async / await, похоже, работает. Надеюсь, у кого-то есть идея.
Код:
const launchChrome = require('@serverless-chrome/lambda');
const { Chromeless } = require('chromeless');
let index = async function handler () {
await launchChrome({
port: 9222,
chromeFlags: [
'--window-size=1200,800',
'--disable-gpu',
'--headless'
]
})
.then(async (chrome) =>
{
const chromeless = new Chromeless(
{
launchChrome:false,
cdp:{host: 'localhost', port: 9222, secure: false}
}
);
const html = await chromeless
.goto('http://www.google.com')
.wait(5000)
.html();
console.log(html);
chromeless.end();
})
};
exports.handler = index;
Журналы:
16:39:44 START RequestId: xxx Version: $LATEST
16:39:52 2018-04-05T16:39:52.163Z xxx <html><head></head><body></body></html>
16:39:52 END RequestId: xxx
16:39:52 REPORT RequestId: xxx
Duration: 7375.83 ms Billed Duration: 7400 ms Memory Size: 576 MB