在firebase云功能中运行puppeteer代码

BKo*_*Koo 2 heroku web-scraping firebase google-cloud-functions puppeteer

我正在开发一个个人项目,这是一个应用程序,用户可以输入他们的地址和信用卡信息,然后单击按钮为我经常访问的大学之一购买停车许可证.

我想在firebase的云存储中托管我的前端,我想创建一个云函数,其中puppeteer代码可以运行我保存到firebase的实时数据库的信息.

firebase云功能是否可以运行购买停车许可证的木偶操纵码?

由于puppeteer不支持云功能,我可以使用heruoku来托管木偶操作码吗?

Dou*_*son 5

目前无法将Puppeteer与云功能一起使用,因为运行已部署代码的服务器实例缺少Puppeteer所需的共享库.您可以在此GitHub问题中阅读相关内容.另见本期.


Ian*_*Ian 5

现在可以在Cloud Functions中运行Puppeteer(截至2018年8月13日)。

注意:其中一些命令在“ beta” SDK中,因此毫无疑问将来会更改。该快速入门指南包含最新的文档。

1)在撰写本文时,您需要使用Node 8和beta组件:

gcloud components update
gcloud components install beta
Run Code Online (Sandbox Code Playgroud)

2)Node示例中有一个“无头Chrome”示例,该示例显示了如何将屏幕截图创建为PNG(不过还有其他可用选项)。

git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
cd nodejs-docs-samples/functions/headless-chrome
Run Code Online (Sandbox Code Playgroud)

3)部署组件

gcloud beta functions deploy screenshot --runtime nodejs8 --trigger-http
Run Code Online (Sandbox Code Playgroud)

4)最后,您需要增加内存分配。默认情况下,Cloud Functions仅获得256Mb的内存,因此,如果您尝试运行Puppeteer而不先更改内存设置,则会收到错误消息。在Cloud Console中打开您的项目,选择Cloud Functions,选择您的函数,然后单击Edit。512Mb对我来说还不够,所以我上升到2Gb。

Cloud Functions内存设置