NodeJS и безсерверный фреймворк не могут найти модуль "chrome-aws-lambda" при вызове лямбда-функции - PullRequest
0 голосов
/ 13 июня 2019

Мой код работает нормально при локальном запуске. Я установил модуль с npm install chrome-aws-lambda перед развертыванием и попытался chmod -R +r node_modules/, если это была ошибка разрешения на чтение, но все же не повезло.

Мой код для handler.js:

'use strict';
const {getArrayOfPages} = require("./utils"); 
const creds = require("./creds.json"); 

module.exports.hello = async (event, context) => {
  try {
    var browserendpoint = await getArrayOfPages(creds.username, creds.password)
    console.log("DATA: " + browserendpoint)        
  }
  catch(error) {
    // Code that handles any potential errors
    console.log(error)
  }
}

Мой код для getArrayOfPages.js:


const sign_in = 'www.example.com/';
const chromium = require('chrome-aws-lambda')

module.exports = async function (username, password) {
  try {
    browser = await chromium.puppeteer.launch({
      args: chromium.args,
      defaultViewport: chromium.defaultViewport,
      executablePath: await chromium.executablePath,
      headless: chromium.headless,
      slowMo: 250, // slow down by 250ms
      userDataDir: "/tmp/" //save session data/cookies to be shared between lambda functions 
    });
    const endpoint = await browser.wsEndpoint();
    const page = await browser.newPage();
    await page.goto(sign_in, { waitUntil: 'networkidle0' })
    // code to login here
    await browser.disconnect()
    return endpoint
  }
  catch (error) {
    // Code that handles any potential errors
    console.log(error)
  }
}
...