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
        });