Cloud Functions for Firebaseでpuppeteerを使ってPDFやScreenshotを生成する

August 19, 2018,
tags: Firebase CloudFunctions PDF puppeteer HeadlessChrome


このエントリーをはてなブックマークに追加

PDFやScreenshotを生成したいときに便利なpuppeteer。

実行環境をもっと気軽に作れればいいなぁーと思い、Cloud Functionsで動かせないかなぁーと。
調べたらCloud FunctionsでNode.js 8が動くらしいので、puppeteerを試してみました。

GitHub - polidog/puppeteer-pdf-example

ただし、cloud functionsで外部と通信するのでSparkプランだとダメです。
使う場合はBlazeかFlameプランを使ってください。

ローカル環境で動かす場合は

$ fireabase serve --project <your project name>

これで実行出来ます。

Firebaseの開発環境を用意していない場合は公式ドキュメントの手順に沿って環境を構築してください。
https://firebase.google.com/support/guides/firebase-web?hl=ja

なぜpuppeteerが動くのか

まえにhtml-pdf-chromeを使っていた時はChrome(Chromium)をインストールしてある環境でないと動かなかった。
html-pdf-chrome - npm

Puppeteerもheadless chrome動かしているのだから、予めインストールしておくことが必要なのではって思ったのですが、どうやらいらないみたいです。

install.jsを確認してみると、PUPPETEER_SKIP_CHROMIUM_DOWNLOADの環境変数でinstallするかしないかをコントロールしているみたいです。
puppeteer/install.js at d1105afaf8fed635c593bf2667b81e5b0bac1fcd · GoogleChrome/puppeteer · GitHub

参考

comments powered by Disqus