Cloud Functions を Node.js 10 移行する


久しぶりに Cloud Functions のコンソール画面を開いたら下記のような警告が来ていました。どうやら Node.js 8 が非推奨になり2021年の3月中旬には全面的にサポートされなくなるとのことなので、Node.js 10 へ移行します。

移行していく

まずは Node.js 10 にバージョンアップするので、Deploy・エミュレーションができるように最新の Firebase CLI をインストールします。

$ npm install -g firebase-tools@latest

次に functions > package.jsonengines ブロックの node ターゲットを 10 に変更します。

"engines": {
  "node": "10"
}

ほとんどの場合 Node.js 8 と Node.js 10 ではコードが変更されることはありませんが、自動的にセットされる環境変数が変更されたみたいなので、詳しくは下記リンクを参照してください。

テストしてみる

firebase emulators:start でエミュレートをスタートさせ、View in Emulator UI で表示されたローカルポートで Emulator Suite を開きます。

emulator がインストールされていない場合は下記コマンドでインストールします。

$ npm install -g @google-cloud/functions-emulator

http://localhost:5001/{project_name}/us-central1/{関数名}のように HTTP関数でリクエストを実行すれば、ローカル環境でテストを行うことができるようになります。

テストが完了したので最後にデプロイします。

$ firebase deploy --only functions