Установить путь к chrome локально и в AWS Lambda в Node - PullRequest
0 голосов
/ 25 мая 2020

enter image description here

Я экспериментирую с nodejs, кукловодом и бессерверным фреймворком, следуя статьям вроде https://hackernoon.com/a-crash-course-on-serverless-with-node-js-632b37d58b44 и https://medium.com/@crespo.wang / create-pdf-using-chromium-puppeteer-in-serverless- aws -lambda-685906df62d5

Структура моего проекта показана на скриншоте. У меня есть функция main в index. js с использованием кукольника, которую я тестировал локально и работает правильно, в том числе:

/*jshint esversion: 6 */

// const chromeLambda = require("chrome-aws-lambda");
// const puppeteer = require('puppeteer');
const puppeteer = require('puppeteer-core');
const CREDS = require('./.creds');
// dom element selectors
const USERNAME_SELECTOR = '#swpm_user_name';
const PASSWORD_SELECTOR = '#swpm_password';
const BUTTON_SELECTOR = '#swpm-login-form > div > div.swpm-login-submit > input';

// C:\Program Files (x86)\Google\Chrome\Application

async function main() {

  let launchOptions = { headless: false, 
    executablePath: 'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe', // because we are using puppeteer-core so we must define this option
    args: ['--start-maximized'] };

const browser = await puppeteer.launch(launchOptions);



}

моя функция handler.ls включает:

'use strict';

module.exports.main = async event => {

  return {
    statusCode: 200,
    body: JSON.stringify(
      {
        message: 'main function executed!',
        input: event,
      },
      null,
      2
    ),
  };

Прямо сейчас у меня настроена основная функция, так что я могу запускать и тестировать локально, задав путь к chrome локально. Я понимаю, что существует доступный пакет chrome - aws -lambda, который можно использовать с puppeteer-core. Как лучше всего установить путь к chrome - aws -lambda при развертывании, но по умолчанию - локальный путь во время разработки?

...