chrome - aws -lambda Amazon linux 2 Ошибка при получении: сокет зависает - PullRequest
0 голосов
/ 23 января 2020

Справочная информация: у меня этот код работает в AWS linux AMI с узлом 8 для лямбды. Так как Amazon прекратил работу узла 8 в лямбде, я работал над переходом на узел 10, который теперь использует Amazon linux 2. После обновления я не смог обойти ошибку: проблема зависания сокета.

Наборы версий

  • Узел v10.18.1
  • chrome - aws -lambda 2.0.2
  • puppeteer 2.0.0
  • Amazon Linux выпуск 2 (Karoo)

Фрагмент кода:

console.log('start 1')
try {
        // create the browser session and page. Then go to url 
        const browser = await puppeteer.launch({
            // devtools: true
            args: chrome.args,
            defaultViewport: chrome.defaultViewport,
            executablePath: await chrome.executablePath,
            headless: chrome.headless,   
        })

        console.log('start 2')

        const page = await browser.newPage()

        console.log('starting browser logic')

        // set page timeout out milisecods, currently 2
        page.setDefaultTimeout(pageTimeOut)

        // goes to webpage waits for network traffic to die off
        const [startPage] = await Promise.all([
            page.goto(url),
            page.waitForNavigation({waitUntil: "networkidle0"})
        ])

Ошибка: ошибка возникает в await puppeteer.launch

bash-4.2# node run.js
starting check: LoginCheck
start 1
ErrorEvent {
  target:
   WebSocket {
     domain: null,
     _events:
      [Object: null prototype] { open: [Function], error: [Function] },
     _eventsCount: 2,
     _maxListeners: undefined,
     readyState: 3,
     protocol: '',
     _binaryType: 'nodebuffer',
     _closeFrameReceived: false,
     _closeFrameSent: false,
     _closeMessage: '',
     _closeTimer: null,
     _closeCode: 1006,
     _extensions: {},
     _receiver: null,
     _sender: null,
     _socket: null,
     _isServer: false,
     _redirects: 0,
     url:
      'ws://127.0.0.1:41553/devtools/browser/cd72d3b1-e70e-4a34-aa65-351ef1857587',
     _req: null },
  type: 'error',
  message: 'socket hang up',
  error:
   { Error: socket hang up
       at createHangUpError (_http_client.js:323:15)
       at Socket.socketOnEnd (_http_client.js:426:23)
       at Socket.emit (events.js:203:15)
       at Socket.EventEmitter.emit (domain.js:448:20)
       at endReadableNT (_stream_readable.js:1145:12)
       at process._tickCallback (internal/process/next_tick.js:63:19) code: 'ECONNRESET' } }

1 Ответ

0 голосов
/ 31 января 2020

Мне удалось решить эту проблему, установив следующие библиотеки AWS linux 2.

pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 alsa-lib.x86_64 gtk3.x86_64 xorg-x11-fonts-100dpi xorg-x11-utils xorg-x11-fonts-Type1 xorg-x11-fonts-misc xorg-x11-fonts-cyrillic xorg-x11-fonts-75dpi ipa-gothic-fonts atk.x86_64 GConf2.x86_64 avahi.x86_64 
...