概要
firebase の Cloud Functions のコールドスタートが遅すぎて、nuxt の ssr 側でエラーが発生する(原因はテキトー)ことを回避するために以下の記事を書きましたが、公式が推奨している minInstances も試してみました
firebase Cloud Functions のコールドスタートを cloud schedule (cron実行) で回避してみる
参考
- 関数のデプロイとランタイム オプションを管理する | Firebase
- Cloud Functions に新たに導入されたインスタンスの最小数がサーバーレスのコールド スタートを削減 | Google Cloud Blog
- Googleがコールドスタート低減のために最小インスタンスを導入
やり方
簡単です。Cloud Functions の定義に .runWith({minInstances: 1})
を足すだけ
exports.ssr = functions
.runWith({
minInstances: 1,
}).https.onRequest(async (req, res) => {
await nuxt.ready()
return nuxt.render(req, res)
})
公式のガイドだと、.https.onCall
の例でしたが、https.onRequest
でもいけました
また、minInstances
は、5となってましたが、ケチって1にしてみました
これで初回10秒の遅延 + ssr のエラーが無くなりそうです
注意
料金が $6 (659.94円) かかるとあります。無料枠内かしら...
注: 実行状態を維持する最小インスタンス数を設定すると、アイドル状態のレートで課金が発生します。通常、アイドル状態の関数インスタンスを 1 つウォーム状態に保つための料金は、月額 $6.00 未満です。Firebase CLI では、関数のデプロイ時に最小数のインスタンスを予約した場合の費用を見積もることができます。費用を計算するには、Cloud Functions の料金をご覧ください。