問題
サーバーから Firebase への最初の呼び出しには、後続の呼び出しよりも 15 ~ 20 倍の時間がかかります。これは、Firebase を呼び出す従来のサーバーでは問題になりませんが、Amazon Lambda/Google Cloud Functions を利用するサーバーレス アーキテクチャでは問題が発生する可能性があります。
質問
- 最初の呼び出しが非常に遅いのはなぜですか? 認証によるものですか?
- 回避策はありますか?
- Amazon Lambda/Google Cloud Functions を使用して Firebase DB でユーザーが開始したデータの計算を実行し、結果を 1 ~ 2 秒以内にクライアントに返すことは実用的ですか?
環境
Firebase をデータのリポジトリとして使用するサーバーレス アーキテクチャを使用し、Amazon Lambda/ Cloud Functions を使用して Firebase をサーバー側の計算 (他のユーザーの検索など) で拡張することを計画しています。クライアントからの HTTP リクエストを介して関数をトリガーするつもりです。
私が抱えていた懸念の 1 つは、サーバーから Firebase への最初の呼び出しに時間がかかることでした。ラップトップでサーバー側のコードをテストしているときに、最初のリスナーが 6 秒で戻ってきました。後続の呼び出しは 300 ~ 400 ミリ秒で返されます。データセットは非常に小さく (2 ~ 3 個のキーと値のペア)、オブザーバーを交換してテストしました。
比較すると、ラップトップから Google Maps API を呼び出すと、返されるまでに約 400 ミリ秒かかります。
サーバーからの応答時間がかなり高速になることを認識しています。最初の呼び出しでまだ 15 倍から 20 倍という係数は当惑させられます。