問題タブ [google-cloud-functions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1788 参照

node.js - Cloud Functions for Firebase のパフォーマンス

Cloud Functions for Firebase を使用して、次のことを行います。

  1. api.ai からパラメーターを受け取る
  2. サードパーティの API を呼び出して、
  3. api.ai に返信します。

サードパーティ API への私の呼び出しはリクエスト Node.js モジュールgetInfoFromApi()を使用し、index.jsの関数 ( ) 内にラップされています。

私が抱えている問題は、セカンダリ関数呼び出しの実行に一貫して 15 ~ 20 秒かかることです。注: クラウド機能自体は、一貫して 400 ミリ秒の範囲で実行を完了します。

コンソールに簡単なコメントを記録することで、関数が開始されたとき、2 次関数が呼び出されたとき、およびサードパーティからの応答を受け取ったときにわかるので、何が起こっているのかがわかると思います。

大まかに、タイミングは次のようになります。

  • 0: クラウド関数が初期化されます
  • 400 ミリ秒: クラウド機能が完了する
  • 16 秒:getInfoFromApi()関数が呼び出されます (!)
  • 17 秒: サードパーティ API が結果を返す

私の質問:

  • 二次関数の呼び出しが遅れている明らかな理由はありますか? これは、コールド スタートの問題が原因ではないようです。これは、クラウド機能がすぐに有効になり、呼び出しを繰り返した後でも遅延が一貫しているためです。
  • 「リクエスト」ノード モジュールの使用が問題の原因ですか? クラウド機能からの HTTP リクエストを作成/管理するためのより良いモジュールはありますか?

ここで index.js の簡略化された Gist を確認できます: https://gist.github.com/anonymous/7e00420cf2623b33b80d88880be04f65

これは、タイミングの例を示す Firebase コンソールのグラブです。注: 理解を助けるために上記のコードを簡略化したため、出力は上記のコードとは少し異なります。 ここに画像の説明を入力

0 投票する
24 に答える
112623 参照

node.js - Cloud Functions for Firebase でアップロードされたファイルからダウンロード URL を取得する

Functions for Firebase を使用して Firebase Storage にファイルをアップロードした後、ファイルのダウンロード URL を取得したいと考えています。

私はこれを持っています:

オブジェクト ファイルには多くのパラメータがあります。という名前の 1 つでもmediaLink。ただし、このリンクにアクセスしようとすると、次のエラーが発生します。

匿名ユーザーには、オブジェクトへの storage.objects.get アクセス権がありません ...

パブリック ダウンロード URL を取得する方法を誰か教えてもらえますか?

ありがとうございました