我正在尝试在Lambda中使用Puppeteer,但是,在无服务器部署期间,由于超过了250mb未捆绑软件包大小限制,lambda会出现错误。
为了满足要求,我切换到不带Chromium的Puppeteer核心。这需要引用可执行文件路径来启动chrome。(例如:puppeteer.launch({executablePath: headlessChromiumPath})
)
但是,我不知道如何将一个无头的Chromium加载到我的容器中,以便稍后引用它。
为了解决这个问题,我正在尝试一些方法:
首先,我下载了一个二进制的无头Chromium,并将其包含到我的API中。
文件结构:
-run-puppeteer.js
-headless_shell.tar.gz
引用方式如下:
const browser = await puppeteer.launch({
executablePath: "../headless_shell.tar.gz"
});
然而,我无法导入或要求它,因此我的lambda无法识别其存在,并且不会将其包含在我的部署包中。 我在这里的问题是如何正确地将无头文件包含到我的API中,以便我可以从这个lambda中引用它?
如果这不是一个选项-我看到我可以将二进制文件上传到S3,然后在容器启动时下载它。 任何关于开始解决此问题的信息都将不胜感激。