問題タブ [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.
node.js - Cloud Functions for Firebase のパフォーマンス
Cloud Functions for Firebase を使用して、次のことを行います。
- api.ai からパラメーターを受け取る
- サードパーティの API を呼び出して、
- 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 コンソールのグラブです。注: 理解を助けるために上記のコードを簡略化したため、出力は上記のコードとは少し異なります。
node.js - Cloud Functions for Firebase でアップロードされたファイルからダウンロード URL を取得する
Functions for Firebase を使用して Firebase Storage にファイルをアップロードした後、ファイルのダウンロード URL を取得したいと考えています。
私はこれを持っています:
オブジェクト ファイルには多くのパラメータがあります。という名前の 1 つでもmediaLink
。ただし、このリンクにアクセスしようとすると、次のエラーが発生します。
匿名ユーザーには、オブジェクトへの storage.objects.get アクセス権がありません ...
パブリック ダウンロード URL を取得する方法を誰か教えてもらえますか?
ありがとうございました