Кукловод в AWS EC2 Ubuntu с google-chrome-stable - PullRequest
0 голосов
/ 19 декабря 2018

Я пытаюсь запустить кукловода на AWS для обработки видео.Это не самый очевидный рабочий процесс, но мне нужно использовать библиотеку, написанную для Интернета, а не Node.js.

Я обработал несколько ошибок, связанных с зависимостями , URL-адреса BLOB-объектов и Возможности Chromium с изображениями и видео , и теперь у меня совершенно неопределенная ошибка, без понятия о том, что еще нужно исправить.

Среда:

EC2 Instance: t2.medium Ubuntu 16.04
Original AMI: http://aws.amazon.com/marketplace/pp/B00NNZUAKO
Node: v8.1.2
puppeteer: 1.5.0
google-chrome-stable: 71.0.3578.98-1

В моем приложении node.js:

const browser = await puppeteer.launch({
  executablePath: '/usr/bin/google-chrome-stable',
  args: ['--no-sandbox', '--disable-setuid-sandbox'],
  headless: false,
});                  // ERROR IS THROWN BY puppeteer.launch()
const page = await browser.newPage();
page.on('console', handleLogging(browser, exits, inputs.id));
await page.goto('http://ec2-my-instance.compute-1.amazonaws.com/analyzer');

Ошибка:

{ Error: Failed to launch chrome!


TROUBLESHOOTING: https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md

    at onClose (/home/bitnami/my-project/node_modules/puppeteer/lib/Launcher.js:285:14)
    at ChildProcess.helper.addEventListener (/home/bitnami/my-project/node_modules/puppeteer/lib/Launcher.js:275:60)
    at emitTwo (events.js:125:13)
    at ChildProcess.emit (events.js:213:7)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:197:12)
  cause: 
   Error: Failed to launch chrome!


   TROUBLESHOOTING: https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md

       at onClose (/home/bitnami/my-project/node_modules/puppeteer/lib/Launcher.js:285:14)
       at ChildProcess.helper.addEventListener (/home/bitnami/my-project/node_modules/puppeteer/lib/Launcher.js:275:60)
       at emitTwo (events.js:125:13)
       at ChildProcess.emit (events.js:213:7)
       at Process.ChildProcess._handle.onexit (internal/child_process.js:197:12),
  isOperational: true }

1 Ответ

0 голосов
/ 01 января 2019

Путь к исполняемому файлу выглядит нормально, если предположить, что Chrome действительно существует.

Я смог запустить ваш код на аналогичном экземпляре EC2, добавив --single-process к аргументам.Попробуйте следующие аргументы:

args: ['--no-sandbox', '--disable-setuid-sandbox', '--single-process'],

Честно говоря, я не совсем уверен, зачем это нужно в EC2.

Если вы не настроили отображение для экземпляра EC2, вы будететакже необходимо изменить на безголовый: true, в противном случае вы получите аналогичную ошибку, поскольку chrome требует отображения для отображения.

** Если бы я мог, я бы добавил это в комментарий, а не в ответ, поскольку он неполный, но, к сожалению,У меня недостаточно очков.

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