Puppeteer 无法启动浏览器
Puppeteer Failing To Launch Browser
我目前正在研究从 HTML 生成 PDF 的 AWS Lambda。部署后,lambda 运行完美,但我想在本地 运行 使开发更容易。
我已经安装了来自 AWS 的 SAM 以及 Docker,AWS 表示需要在本地 运行 一个 lambda。
在我的命令行解决方案文件夹中,我是 运行ning sam local invoke "HelloWorldFunction" -e pdf/test-data/test.json
然后它似乎可以工作,因为它说它正在获取它然后将它安装到本地 docker 容器。但是它随后给出以下错误:
这似乎是关于 chrome 的 puppeteer 可执行文件的错误,尽管它在那里。我正在使用以下变量:
const chromium = require("chrome-aws-lambda");
const puppeteer = require('puppeteer');
const pptr = require('puppeteer-core');
然后我用来启动浏览器的代码如下:
const executablePath = event.isOffline
? "./node_modules/puppeteer/.local-chromium/win64-737027/chrome-win/chrome.exe"
: await chromium.executablePath;
browser = await chromium.puppeteer.launch({
args: chromium.args,
defaultViewport: chromium.defaultViewport,
executablePath: executablePath,
headless: chromium.headless
});
我已经尝试了 puppeteer 故障排除中给出的设置,重新安装了我的软件包,但似乎没有任何效果。我的包也是以下版本:
我之前没有使用过 docker 所以我不确定这是否是问题所在?在此先感谢您的帮助。
看来我不得不使用chrome-aws-lambda
提供的路径。所以生成浏览器的代码看起来像这样并且有效:
browser = await chromium.puppeteer.launch({
args: chromium.args,
defaultViewport: chromium.defaultViewport,
executablePath: await chromium.executablePath,
headless: chromium.headless
});
我目前正在研究从 HTML 生成 PDF 的 AWS Lambda。部署后,lambda 运行完美,但我想在本地 运行 使开发更容易。
我已经安装了来自 AWS 的 SAM 以及 Docker,AWS 表示需要在本地 运行 一个 lambda。
在我的命令行解决方案文件夹中,我是 运行ning sam local invoke "HelloWorldFunction" -e pdf/test-data/test.json
然后它似乎可以工作,因为它说它正在获取它然后将它安装到本地 docker 容器。但是它随后给出以下错误:
这似乎是关于 chrome 的 puppeteer 可执行文件的错误,尽管它在那里。我正在使用以下变量:
const chromium = require("chrome-aws-lambda");
const puppeteer = require('puppeteer');
const pptr = require('puppeteer-core');
然后我用来启动浏览器的代码如下:
const executablePath = event.isOffline
? "./node_modules/puppeteer/.local-chromium/win64-737027/chrome-win/chrome.exe"
: await chromium.executablePath;
browser = await chromium.puppeteer.launch({
args: chromium.args,
defaultViewport: chromium.defaultViewport,
executablePath: executablePath,
headless: chromium.headless
});
我已经尝试了 puppeteer 故障排除中给出的设置,重新安装了我的软件包,但似乎没有任何效果。我的包也是以下版本:
我之前没有使用过 docker 所以我不确定这是否是问题所在?在此先感谢您的帮助。
看来我不得不使用chrome-aws-lambda
提供的路径。所以生成浏览器的代码看起来像这样并且有效:
browser = await chromium.puppeteer.launch({
args: chromium.args,
defaultViewport: chromium.defaultViewport,
executablePath: await chromium.executablePath,
headless: chromium.headless
});