久しぶりに Cloud Functions のコンソール画面を開いたら下記のような警告が来ていました。どうやら Node.js 8 が非推奨になり2021年の3月中旬には全面的にサポートされなくなるとのことなので、Node.js 10 へ移行します。
移行していく
まずは Node.js 10 にバージョンアップするので、Deploy・エミュレーションができるように最新の Firebase CLI をインストールします。
$ npm install -g firebase-tools@latest
次に functions
> package.json
で engines
ブロックの 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