Cloud FunctionsでNode.js 12のランタイムを試してみた

いつの間にかNode.js 12のランタイムが使えるようになっていたので試してみました。

いつの間にかベータが出てた

Node.js 10のランタイムがGAになってからしばらく経つCloud Functionsですが全然Node.js 12に対応してくれません。
最新のLTSバージョンしかサポートしないNPMパッケージがあったりしてCloud Functions上で動かせずやきもきしてる人もいるのではないでしょうか。
自分もやきもきしていたのですが、なんとなくコンソール上でCloud Functionsの関数の作成画面をいじっていたらランタイムのプルダウンにNode.js 12が増えてるのを発見。
いつの間にかリリースされたのかと思い検索してみるもドキュメントは見当たらず、Twitterで検索してもNode.js12まだかよってキレてる人しか見当たらないのでとりあえず試してみました。

バージョンは?

Node.js以外のランタイムはわかりませんがCloud FunctionsのNode.jsのランタイムのバイナリは最新のバージョンではなくやや古いバージョンのが固定でインストール されてます。
メジャーバージョンが12なのは間違いなさそうですがマイナーバージョンより細かいバージョンは謎なのでprocess.releaseで調べてみました。

{
  "name":"node",
  "lts":"Erbium",
  "sourceUrl":"https://nodejs.org/download/release/v12.16.3/node-v12.16.3.tar.gz",
  "headersUrl":"https://nodejs.org/download/release/v12.16.3/node-v12.16.3-headers.tar.gz"
}

この記事書いたタイミングでは12.16.3だそうで、調べてみたら2020/04/28にリリースされたバージョンでした。
なお、まだベータなのでGAのタイミングで変わる可能性がありますしベータ中に変わる可能性もあるので最新のバージョンに関しては自分で調べるなりドキュメントが公開されたらドキュメントを参照するなりしてください。

デプロイ

デプロイする時のオプションに--runtime=nodejs12を指定するだけでOKです。
デプロイが完了するとコンソール上でランタイムがNode.js 12になっているのが確認できます。

参考リンク