NodeJS 和无服务器框架在调用 lambda 函数时找不到模块“chrome-aws-lambda”

iml*_*ode 6 node.js serverless-framework puppeteer

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)
  }
}
Run Code Online (Sandbox Code Playgroud)

我的 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)
  }
}
Run Code Online (Sandbox Code Playgroud)