![enter image description here](https://i.stack.imgur.com/RwJ7x.jpg)
Я экспериментирую с 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 при развертывании, но по умолчанию - локальный путь во время разработки?