Firebase-tools: 関数のデプロむが非垞に遅い

䜜成日 2017幎11月14日  Â·  94コメント  Â·  ゜ヌス: firebase/firebase-tools

バヌゞョン情報

3.15.0

再珟する手順

1぀の関数だけで単玔なfunctionsディレクトリを䜜成したす。

const functions = require('firebase-functions');
const admin = require('firebase-admin');

admin.initializeApp(functions.config().firebase);

exports.ping = functions.https.onRequest((req, res) => {
  res.status(200).send('pong');
}

次に、 firebase deploy --only functionsを䜿甚しおデプロむしたす。

予想される行動

より速く展開したす。 これで、小さな関数ファむルをデプロむするのに数分かかりたす。 これをホスティングのアップロヌド/デプロむず比范するず、かなり高速で、1぀のファむルよりはるかに倚くなりたす。

実際の動䜜

アップロヌド/デプロむに非垞に時間がかかりたす。 preparing functions directory for uploading...フェヌズ䞭にハングしたす。

image

firebase deploy --only functionsのデバッグログ
_再珟ステップで別の関数を䜿甚したこずに泚意しおください。ただし、同じ考えです。数行のコヌドしかない小さな関数です。_

> firebase deploy --only functions --debug
[2017-11-14T10:03:55.799Z] ----------------------------------------------------------------------
[2017-11-14T10:03:55.804Z] Command:       C:\Program Files\nodejs\node.exe C:\Program Files\nodejs\node_modules\firebase-tools\bin\firebase deploy --only functions --debug
[2017-11-14T10:03:55.806Z] CLI Version:   3.15.0
[2017-11-14T10:03:55.806Z] Platform:      win32
[2017-11-14T10:03:55.806Z] Node Version:  v6.11.1
[2017-11-14T10:03:55.807Z] Time:          Tue Nov 14 2017 04:03:55 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:03:55.807Z] ----------------------------------------------------------------------

[2017-11-14T10:03:55.826Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"]
[2017-11-14T10:03:55.827Z] > authorizing via signed-in user
[2017-11-14T10:03:55.831Z] >>> HTTP REQUEST GET https://admin.firebase.com/v1/projects/marktec-itesm
 Tue Nov 14 2017 04:03:55 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:03:56.230Z] <<< HTTP RESPONSE 200 server=nginx, date=Tue, 14 Nov 2017 10:03:57 GMT, content-type=application/json; charset=utf-8, content-length=108, connection=close, x-content-type-options=nosniff, strict-transport-security=max-age=31536000; includeSubdomains, cache-control=no-cache, no-store
[2017-11-14T10:03:56.232Z] >>> HTTP REQUEST GET https://admin.firebase.com/v1/database/marktec-itesm/tokens
 Tue Nov 14 2017 04:03:56 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:03:56.622Z] <<< HTTP RESPONSE 200 server=nginx, date=Tue, 14 Nov 2017 10:03:57 GMT, content-type=application/json; charset=utf-8, content-length=262, connection=close, x-content-type-options=nosniff, strict-transport-security=max-age=31536000; includeSubdomains, cache-control=no-cache, no-store

=== Deploying to 'marktec-itesm'...

i  deploying functions
[2017-11-14T10:03:57.040Z] > [functions] package.json contents: {
  "name": "functions",
  "description": "Cloud Functions for Firebase",
  "scripts": {
    "serve": "firebase serve --only functions",
    "shell": "firebase experimental:functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "dependencies": {
    "firebase-admin": "~5.4.2",
    "firebase-functions": "^0.7.1"
  },
  "private": true
}
i  functions: ensuring necessary APIs are enabled...
i  runtimeconfig: ensuring necessary APIs are enabled...
[2017-11-14T10:03:57.043Z] >>> HTTP REQUEST GET https://servicemanagement.googleapis.com/v1/services/cloudfunctions.googleapis.com/projectSettings/marktec-itesm?view=CONSUMER_VIEW
 Tue Nov 14 2017 04:03:57 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:03:57.044Z] >>> HTTP REQUEST GET https://servicemanagement.googleapis.com/v1/services/runtimeconfig.googleapis.com/projectSettings/marktec-itesm?view=CONSUMER_VIEW
 Tue Nov 14 2017 04:03:57 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:03:57.479Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:03:58 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
+  functions: all necessary APIs are enabled
[2017-11-14T10:03:57.488Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:03:58 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
+  runtimeconfig: all necessary APIs are enabled
[2017-11-14T10:03:57.489Z] >>> HTTP REQUEST GET https://appengine.googleapis.com/v1/apps/marktec-itesm
 Tue Nov 14 2017 04:03:57 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:03:57.490Z] >>> HTTP REQUEST GET https://apikeys.googleapis.com/v1/projects/marktec-itesm/apiKeys
 Tue Nov 14 2017 04:03:57 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:03:57.775Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:03:58 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
[2017-11-14T10:03:57.950Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:03:58 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
i  functions: preparing functions directory for uploading...
[2017-11-14T10:05:52.258Z] >>> HTTP REQUEST GET https://runtimeconfig.googleapis.com/v1beta1/projects/marktec-itesm/configs
 Tue Nov 14 2017 04:05:52 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:05:52.676Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:05:53 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
i  functions: packaged functions (22.1 KB) for uploading
[2017-11-14T10:06:01.593Z] >>> HTTP REQUEST GET https://www.googleapis.com/storage/v1/b/staging.marktec-itesm.appspot.com
 Tue Nov 14 2017 04:06:01 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:06:01.940Z] <<< HTTP RESPONSE 200 x-guploader-uploadid=AEnB2UpSfip_C_K1wvCJaLNVW1q05_zW3D3fph0U7sYHr6_9M5InFI0Pi_X1VFc8B5PpbZImDdZiAaZZLqWXdl-JxdzedIZeExTeX4ifDbfvg7G8tsjPm1Y, etag=CAE=, vary=Origin, X-Origin, content-type=application/json; charset=UTF-8, expires=Tue, 14 Nov 2017 10:06:02 GMT, date=Tue, 14 Nov 2017 10:06:02 GMT, cache-control=private, max-age=0, must-revalidate, no-transform, content-length=548, server=UploadServer, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", connection=close
[2017-11-14T10:06:01.942Z] >>> HTTP REQUEST POST https://www.googleapis.com/upload/storage/v1/b/staging.marktec-itesm.appspot.com/o?uploadType=media&name=firebase-functions-source ReadStream {
  _readableState:
   ReadableState {
     objectMode: false,
     highWaterMark: 65536,
     buffer: BufferList { head: [Object], tail: [Object], length: 1 },
     length: 22627,
     pipes: null,
     pipesCount: 0,
     flowing: null,
     ended: true,
     endEmitted: false,
     reading: false,
     sync: false,
     needReadable: false,
     emittedReadable: true,
     readableListening: false,
     resumeScheduled: false,
     defaultEncoding: 'utf8',
     ranOut: false,
     awaitDrain: 0,
     readingMore: false,
     decoder: null,
     encoding: null },
  readable: true,
  domain: null,
  _events: { end: [Function] },
  _eventsCount: 1,
  _maxListeners: undefined,
  path: 'C:\\Users\\benja\\AppData\\Local\\Temp\\firebase-functions-69565Vb7CkPZp0rr.zip',
  fd: 6,
  flags: 'r',
  mode: 438,
  start: undefined,
  end: undefined,
  autoClose: true,
  pos: undefined,
  bytesRead: 22627 }
 Tue Nov 14 2017 04:06:01 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:06:02.601Z] <<< HTTP RESPONSE 200 x-guploader-uploadid=AEnB2UqV_ml27ZAt9W3ouCst97NUKPW4MeltDmxl06PA4sGBy6A8fqo0bAbEKHT0vokHMXo0t0yhOY0ve3XT0RrLjsiDwXyhwA, etag=CJPx8MbovdcCEAE=, vary=Origin, X-Origin, content-type=application/json; charset=UTF-8, cache-control=no-cache, no-store, max-age=0, must-revalidate, pragma=no-cache, expires=Mon, 01
Jan 1990 00:00:00 GMT, date=Tue, 14 Nov 2017 10:06:03 GMT, content-length=860, server=UploadServer, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", connection=close
+  functions: functions folder uploaded successfully
[2017-11-14T10:06:02.604Z] >>> HTTP REQUEST GET https://cloudfunctions.googleapis.com/v1beta2/projects/marktec-itesm/locations/us-central1/functions
 Tue Nov 14 2017 04:06:02 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:06:02.845Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:06:03 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
i  functions: updating function verifyItesmDomain...
[2017-11-14T10:06:02.849Z] Trigger is:  resource=projects/marktec-itesm, eventType=providers/firebase.auth/eventTypes/user.create
[2017-11-14T10:06:02.851Z] >>> HTTP REQUEST PUT https://cloudfunctions.googleapis.com/v1beta2/projects/marktec-itesm/locations/us-central1/functions/verifyItesmDomain { sourceArchiveUrl: 'gs://staging.marktec-itesm.appspot.com/firebase-functions-source',
  name: 'projects/marktec-itesm/locations/us-central1/functions/verifyItesmDomain',
  entryPoint: 'verifyItesmDomain',
  timeout: '60s',
  availableMemoryMb: 256,
  labels: { 'deployment-tool': 'cli-firebase' },
  eventTrigger:
   { resource: 'projects/marktec-itesm',
     eventType: 'providers/firebase.auth/eventTypes/user.create' } }
 Tue Nov 14 2017 04:06:02 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:06:03.064Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:06:03 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
[2017-11-14T10:06:03.068Z] >>> HTTP REQUEST GET https://cloudfunctions.googleapis.com/v1beta2/operations/bWFya3RlYy1pdGVzbS91cy1jZW50cmFsMS92ZXJpZnlJdGVzbURvbWFpbi90SFM4NnhjSF9DUQ
 Tue Nov 14 2017 04:06:03 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:06:03.257Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:06:04 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
[2017-11-14T10:06:05.262Z] >>> HTTP REQUEST GET https://cloudfunctions.googleapis.com/v1beta2/operations/bWFya3RlYy1pdGVzbS91cy1jZW50cmFsMS92ZXJpZnlJdGVzbURvbWFpbi90SFM4NnhjSF9DUQ
 Tue Nov 14 2017 04:06:05 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:06:05.428Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:06:06 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
[2017-11-14T10:06:07.431Z] >>> HTTP REQUEST GET https://cloudfunctions.googleapis.com/v1beta2/operations/bWFya3RlYy1pdGVzbS91cy1jZW50cmFsMS92ZXJpZnlJdGVzbURvbWFpbi90SFM4NnhjSF9DUQ
 Tue Nov 14 2017 04:06:07 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:06:07.603Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:06:08 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
[2017-11-14T10:06:09.606Z] >>> HTTP REQUEST GET https://cloudfunctions.googleapis.com/v1beta2/operations/bWFya3RlYy1pdGVzbS91cy1jZW50cmFsMS92ZXJpZnlJdGVzbURvbWFpbi90SFM4NnhjSF9DUQ
 Tue Nov 14 2017 04:06:09 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:06:09.755Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:06:10 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
[2017-11-14T10:06:11.757Z] >>> HTTP REQUEST GET https://cloudfunctions.googleapis.com/v1beta2/operations/bWFya3RlYy1pdGVzbS91cy1jZW50cmFsMS92ZXJpZnlJdGVzbURvbWFpbi90SFM4NnhjSF9DUQ
 Tue Nov 14 2017 04:06:11 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:06:11.912Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:06:12 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
[2017-11-14T10:06:13.913Z] >>> HTTP REQUEST GET https://cloudfunctions.googleapis.com/v1beta2/operations/bWFya3RlYy1pdGVzbS91cy1jZW50cmFsMS92ZXJpZnlJdGVzbURvbWFpbi90SFM4NnhjSF9DUQ
 Tue Nov 14 2017 04:06:13 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:06:14.078Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:06:14 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
[2017-11-14T10:06:16.080Z] >>> HTTP REQUEST GET https://cloudfunctions.googleapis.com/v1beta2/operations/bWFya3RlYy1pdGVzbS91cy1jZW50cmFsMS92ZXJpZnlJdGVzbURvbWFpbi90SFM4NnhjSF9DUQ
 Tue Nov 14 2017 04:06:16 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:06:16.249Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:06:17 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
[2017-11-14T10:06:18.252Z] >>> HTTP REQUEST GET https://cloudfunctions.googleapis.com/v1beta2/operations/bWFya3RlYy1pdGVzbS91cy1jZW50cmFsMS92ZXJpZnlJdGVzbURvbWFpbi90SFM4NnhjSF9DUQ
 Tue Nov 14 2017 04:06:18 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:06:18.405Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:06:19 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
[2017-11-14T10:06:20.406Z] >>> HTTP REQUEST GET https://cloudfunctions.googleapis.com/v1beta2/operations/bWFya3RlYy1pdGVzbS91cy1jZW50cmFsMS92ZXJpZnlJdGVzbURvbWFpbi90SFM4NnhjSF9DUQ
 Tue Nov 14 2017 04:06:20 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:06:20.588Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:06:21 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
[2017-11-14T10:06:22.591Z] >>> HTTP REQUEST GET https://cloudfunctions.googleapis.com/v1beta2/operations/bWFya3RlYy1pdGVzbS91cy1jZW50cmFsMS92ZXJpZnlJdGVzbURvbWFpbi90SFM4NnhjSF9DUQ
 Tue Nov 14 2017 04:06:22 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:06:22.753Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:06:23 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
[2017-11-14T10:06:24.768Z] >>> HTTP REQUEST GET https://cloudfunctions.googleapis.com/v1beta2/operations/bWFya3RlYy1pdGVzbS91cy1jZW50cmFsMS92ZXJpZnlJdGVzbURvbWFpbi90SFM4NnhjSF9DUQ
 Tue Nov 14 2017 04:06:24 GMT-0600 (Central Standard Time (Mexico))
[2017-11-14T10:06:24.952Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer,
Origin,Accept-Encoding, date=Tue, 14 Nov 2017 10:06:25 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="41,39,38,37,35", accept-ranges=none, connection=close
+  functions[verifyItesmDomain]: Successful update operation.

+  Deploy complete!

Project Console: https://console.firebase.google.com/project/marktec-itesm/overview

最も参考になるコメント

この問題はお尻の本圓の痛みです。 優先床を高くすべきだず思いたす/

党おのコメント94件

提出しおくれおありがずう 展開が遅いこずが機胜゚クスペリ゚ンスの倧きな問題点であるこずはわかっおおり、さたざたな戊略を通じお解決に取り組んでいたす。

@laurenzlong
Firebaseの初心者ずしお、私は䜕かを台無しにしおいるず思いたした。デプロむは垞に_functionsアップロヌド甚のfunctionsディレクトリの準備..._の郚分で停止したためです。
問題が解決するたで、いく぀かの远加情報完了たでに3〜5分かかるなどを提䟛するず非垞に䟿利です。

初心者ずしお、私は自分が䜕か間違ったこずをしおいるず思っお、これをキャンセルするこずに䜕床も費やしたした。

問題は明らかです。 initコマンドは、巚倧な「ノヌドモゞュヌル」フォルダを䜜成したした。 私のマシンでは、22,903ファむル、2,782フォルダヌです。 このコヌドは、そのすべおを䞀時フォルダヌにコピヌしたす。

これが私がしたこずです

  1. ログ印刷ステヌトメントを䜿甚しお、コヌドの遅い行を特定したした。 ここにあるよ
    https://github.com/firebase/firebase-tools/blob/master/lib/prepareFunctionsUpload.js#L26

prepareFunctionsUpload.jsの26行目
fs.copySyncoptions.config.pathoptions.config.get'functions.source'、tmpdir.name;

  1. そのファむルコピヌ呌び出しのパラメヌタヌを印刷したした。 私のマシンでは、次のようになりたす。
    C\ Users \ thoma \ StudioProjects \ LSystemAndroid \ firestorefunctions
    -> C\ Users \ thoma \ AppData \ Local \ Temp \ fbfn_752624vejX0cv3GEJI

関数フォルダヌは、CLIコマンドinitによっお䜜成されたした。 次のようになりたす。

  • node_modules巚倧なサむズ
  • .gitignore
  • index.js
  • package.json
  • pacakge-lock.json

CLIコマンドinitがそのnode_modulesフォルダヌを䜜成するべきではなかったように私には思えたす。 165MBの倧きさです。 それをすべおのプロゞェクトに远加するのは䞍合理に思えたす。

@thomasfischersm

それは実際には問題ではありたせん。 次の行からわかるように、node_modulesは䞀時フォルダヌにコピヌされたせん https //github.com/firebase/firebase-tools/blob/master/lib/prepareFunctionsUpload.js#L76

firebase initは、すべおのノヌドモゞュヌルを関数゜ヌスフォルダヌ内にロヌカルにむンストヌルする必芁がありたす。そうしないず、関数をロヌカルで提䟛できず、トリガヌ抜出が機胜したせんこれにより、CLIはどのむベントがそれぞれをトリガヌするかを理解したすそれらを適切に展開できるように機胜したす。

26行目以降にデバッグ印刷行を配眮したした。 その行は数分かかりたした。

次に、コピヌされおいるファむルを印刷するためのフィルタヌを远加したした。 すべおのnode_modulesファむルが含たれおいたした。

次に、node_moduleファむルを陀倖するようにフィルタヌを倉曎したした。 展開は急速に進みたした。 しかし、少し埌、スクリプトがクラりド機胜の正しさを評䟡しようずしおいるように芋えたした。 ラむブラリの䟝存関係が欠萜しおいるため、そのコヌドは倱敗したした。

あなたが指しおいる゜ヌスコヌド行は埌のステップのようです。 クラりドにアップロヌドする前に、ファむルnode_modulesを陀くがzipファむルにアヌカむブされおいるようです。 その行は私のマシンでは遅くはないようです。

はい、その通りです。私は間違っおいたした。node_modulesはコピヌされたす。 node_modulesをtempディレクトリにコピヌしないのは有効な考えだず思いたす。 これを少し耇雑にしおいるのは、CLIがトリガヌ解析の前にtempフォルダヌに「.runtimeconfig.json」を曞き蟌み、このファむルが残りの関数の゜ヌスコヌドずずもにアップロヌドされるため、曞きたくなかったずいう事実です。このファむルを実際の゜ヌスコヌドディレクトリに入れたす。 したがっお、展開速床を向䞊させ、意図しない副䜜甚が発生しないようにするための優れた゜リュヌションがおそらくありたすが、少し詊しおみる必芁がありたす。 プルリク゚ストもお気軜にどうぞ。

私は同じ問題を抱えおいたす。 ナヌザヌがfirebase-toolsがハングしおいるず思わないように、「ディレクトリの準備䞭...」の手順でさらにメッセヌゞを出力するこずをお勧めしたす。

線集これはUbuntuWSLにありたした。 Linuxでは、「準備」フェヌズはハングしたせん。 「関数の䜜成」のステップは遅くなる可胜性がありたすが、以前に経隓したほどではありたせん。

この問題はお尻の本圓の痛みです。 優先床を高くすべきだず思いたす/

プロゞェクトにFirebase関数を実装しようずしおいたすが、この゚ラヌのために延期する必芁がありたした。
この゚ラヌは私に倚くの時間を無駄にしたした。
すぐに修正されるこずを願っおいたす

この問題は倧きな障害です。 䞻に私がfirestoreを䜿甚しおいるため、アグリゲヌト、カりンタヌ、プレれンスなどはクラりド機胜によっおのみ適切に凊理でき、毎回5分間ハングしたす。

@PulpoEnPatinetaこれぱラヌではありたせん。 これは単にデプロむ時間の問題です。

@McStuffins車の電源を入れるのに5分かかる堎合、それぱラヌですか、それずも単に開始時間の問題ですか

これに察する修正はありたすか 本圓にずおも遅いです。

私は最初からこの問題を远跡しおいたしたが、CDをセットアップしおいお、すべおの䜜業を行っおくれるので、問題になるこずはありたせんでした。 たた、機胜するかどうかをテストするためだけに関数をデプロむするこずもありたせん。 だから基本的には私には関係ありたせんでした。

今日たで、予期しない制限に遭遇したずき関数をデプロむできなくなったため、本番環境ぞのデプロむメントが1日のクォヌタ12,000秒を超えたした。 さたざたなトリガヌpubsub、firestore、httpsを備えた最倧55個の関数がありたす。 扱うには倚すぎたすか

ここで、アプリケヌションを2日間デプロむする必芁がありたすrofllollipop+ 11st_place_medalcoffintadatacocactusdancersmiling_imp

時々、私が展開しおいるずき、それは非垞に遅いです、そしおそれから「ビルド環境の゚ラヌ」ず蚀う譊告がタヌミナルにありたす

@srinurp䞊蚘でリンクしたプルリク゚ストをご芧ください。問題の䞀郚に察凊したす。 たた、バック゚ンドチヌムは、問題の他の郚分に察凊するために取り組んでいたすただし、これは非垞に耇雑な䜜業なので、しばらくお埅ちください。

@merlinnotデプロむごずにすべおの関数のコヌドを曎新する堎合を陀いお、-onlyコマンドを䜿甚しお個々の関数たたは関数のグルヌプをデプロむするこずをお勧めしたす。 https://firebase.google.com/docs/cli/#partial_deploysをご芧ください。

@McStuffins 「ビルド環境の゚ラヌ」は通垞、本番環境の問題を瀺したす。その堎合は、 https //firebase.google.com/support/でサポヌトチケットを提出しおください。進行䞭の本番環境の問題があるかどうかは、 Firebaseステヌタスダッシュボヌド

@laurenzlongデプロむメント間の各機胜の倉曎䟝存関係の解決を含むを自動的に怜出するようにCIを構成する必芁がありたす。 たた、すべおの関数で䜿甚するfirebase-functions 、 firebase-admin 、 lodashなどのパッケヌゞを曎新するずどうなりたすか

@merlinnotこれは非垞に正圓なナヌスケヌスです。 デプロむの割り圓おはGoogleCloudFunctionsによっお制埡されたす。公開されおいる問題のトラッカヌにリク゚ストを提出するこずをお勧めしたす https //cloud.google.com/functions/docs/support

興味のあるすべおの人のために https //issuetracker.google.com/issues/71385193

@laurenzlong゜ヌスをコピヌするずきにnode_modulesフォルダヌを無芖しお、 npm install --productionたたはyarn install --production実行できたすか これらのツヌルは、単にコピヌしお貌り付けるよりも高速な堎合があるためです。

@horacehylee
これは重倧な倉曎である可胜性がありたす。 䞀郚の人々私自身を含むは、盞察パス "package-name" "./externs/package.tgz"などでパッケヌゞを参照する堎合がありたす。これは䞻に、プラむベヌトリポゞトリの珟圚は修正されおいる問題が原因です。 ツヌルは、これらすべおのコヌナヌケヌスを考慮に入れる必芁がありたす。

もう1぀はキャッシュです。Googleがナヌザヌに代わっおパッケヌゞをダりンロヌドする堎合、内郚キャッシュメカニズムを実装する必芁がありたす。 私たち党員がコンピュヌタヌ䞊にロヌカルキャッシュを持っおいるのでnpmずyarnの䞡方にキャッシュメカニズムがありたす、したがっおnpmのサヌバヌを匷制終了したせん;

䞀郚の人々はたた、倖郚ラむブラリのいく぀かの倉曎を単にテストしたいず思うかもしれたせん。 フォヌクを䜜成し、倉曎を加え、パッケヌゞぞの参照を䞀時的に倉曎するよりも、ファむルを倉曎しお関数をデプロむする方がはるかに簡単です...

結論それはうたく機胜したす、今のたたにしおおきたす+1

@horacehylee@ merlinnot2セントありがずうございたす。 https://github.com/firebase/firebase-tools/pull/578を参照しおください。CLIの次のリリヌスでは、関数の゜ヌスフォルダヌの期間がコピヌされなくなりたす。

1Gbpsのファむバヌ接続䞊にある6぀の4GHzコアマシンに5回線、1kbの機胜を展開するのに数分かかるFirebaseで䜕ができるのかよくわかりたせん。

私は小䟿を取っおいるように聞こえたすが、「アップロヌド甚のディレクトリの準備」䞭に䜕が起こっおいるのか本圓に興味がありたす。 誰かが実際に知っおいたすか

ノヌドモゞュヌルを含む関数ディレクトリをtmpディレクトリにコピヌしたす。

次のリリヌスではこれに察凊し、以前にコピヌする必芁がなくなりたす
展開。

2018幎1月7日、午埌5時5分に[email protected]は次のように曞いおいたす。

Firebaseで䜕ができるのか、数分でわかりたせん。
6぀の4GHzコアマシンに5回線、1kbの機胜を導入し、
1Gbpsファむバヌ接続。

私は小䟿を取っおいるように聞こえたすが、私は本圓に䜕に興味がありたす
「アップロヌド甚のディレクトリの準備」䞭に進行䞭です。 誰かが実際に知っおいたすか

—
このスレッドにサブスクラむブしおいるため、これを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/firebase/firebase-tools/issues/536#issuecomment-355868154 、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/AAAD_nUptJWFuYGvEXI0MwmQR-bG9_MKks5tIWm1gaJpZM4QdF3g
。

@mbleigh

そうだね。 なるほどね。 ワヌクステヌションが1、2分狂っおしたうのを芋るのは䞀皮のコメディですが、次の行に「パッケヌゞ化された関数 37.55kb !!!をアップロヌドするために正垞に」を出力させるだけです。

次のリリヌスを楜しみにしおいたす。 応答するためのThx。

H。

19日目。Firebaseはただデプロむ䞭です。 *ポップコヌンを぀かむ*

うん。

次のリリヌスはい぀予定されおおり、展開時間の䜕の改善が期埅できたすか

この道を進み続けるかどうかを知るためだけに。

リリヌスは今週行われる予定であり、「準備䞭
デプロむするための関数ディレクトリ」の手順を倧幅に高速化したす私はしたせん
正確な数がありたす。 デプロむの他の郚分は倉曎されたせん。

2018幎1月15日月曜日12:42PMに[email protected]は次のように曞いおいたす

うん。

次のリリヌスはい぀予定されおおり、展開は䜕改善されたすか
䜕回期埅すべきですか

この道を進み続けるかどうかを知るためだけに。

—
あなたが蚀及されたので、あなたはこれを受け取っおいたす。

このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/firebase/firebase-tools/issues/536#issuecomment-357784792 、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/AAAD_vaj-WngS9dMj7j5Q2AesM0tNMvVks5tK7hBgaJpZM4QdF3g
。

これがリリヌスされたした

@mbleighこれはリリヌス3.17.4にありたすか

@jkossis v3.17.0

リリヌスノヌトから

関数をデプロむする堎合は、関数ディレクトリ内で「npm i --save firebase-functions @ latest 」を実行しお、firebase-functionsSDKを最新のものに曎新する必芁がありたす。 これにより、機胜の展開が高速化されたす。

分から秒たでお疲れ様でした

私にずっお、これはただ数分かかりたす。

[email protected]ず[email protected]がありたす。 この問題をさらにデバッグするために䜕ができたすか

これは、関数のみをデプロむしたずきの出力です。 名前を倉曎したしたが、REST゚ンドポむント、デヌタベヌス、認蚌トリガヌの組み合わせです。

➜  functions git:(master) ✗ firebase --version
3.17.4
➜  functions git:(master) ✗ time firebase deploy --only functions

=== Deploying to 'XXX'...

i  deploying functions
i  functions: ensuring necessary APIs are enabled...
✔  functions: all necessary APIs are enabled
i  functions: preparing functions directory for uploading...
i  functions: packaged functions (123.07 KB) for uploading
✔  functions: functions folder uploaded successfully
i  functions: updating function 1...
i  functions: updating function 2...
i  functions: updating function 3...
i  functions: updating function 4...
i  functions: updating function 5...
i  functions: updating function 6...
✔  functions[1]: Successful update operation.
Function URL (1): https://us-central1-XXX.cloudfunctions.net/1
✔  functions[3]: Successful update operation.
✔  functions[4]: Successful update operation.
✔  functions[5]: Successful update operation.
✔  functions[6]: Successful update operation.
✔  functions[2]: Successful update operation.
Function URL (2): https://us-central1-XXX.cloudfunctions.net/2

✔  Deploy complete!

Project Console: https://console.firebase.google.com/project/XXX/overview
firebase deploy --only functions  4.59s user 1.07s system 1% cpu 6:09.26 total

@adamduren修正は、 preparing functions directory for uploading...で費やされた過床の時間に察するものでした

デプロむ自䜓はただかなり長い時間がかかる可胜性がありたす。

同じ状況でスタックしたす。
screen shot 2018-01-31 at 18 57 02

"firebase-admin": "^5.8.2",
"firebase-functions": "^0.8.1",

npm install -g npm@latestは私にわずかに異なる入力を䞎えたした、そしおfirebase-cliを削陀するこずも䜕かを倉えるようでした。

screen shot 2018-01-31 at 19 11 38

アップデヌト

さお、 npm install -g firebase-toolsを実行した埌、それは぀いに機胜したした。 https://stackoverflow.com/questions/48531993/firebase-config-variables-are-not-available-error-with-deploying-functions#comment84098334_48531993ぞの称賛

こんにちは、同じ時点で問題が発生しおいたす「関数ディレクトリの準備..」
しかし私の堎合、完了するのに25/30分以䞊かかりたした
箄2.20MBの圧瞮された4぀のプラむベヌト䟝存関係がありたす
圧瞮ファむルずしおプラむベヌト䟝存関係を含める唯䞀の方法であるこずがわかりたした。
私は䜕か間違ったこずをしおいたすか それずも、これが機胜するはずですか

2018-5-9
firebase deployただ遅い、理由はわからない
image

最埌のバヌゞョンに曎新したしたか 先週曎新したしたが、デプロむには1〜3分かかりたす25/30から

次のような単玔なものの堎合、デプロむ時間は4分以䞊になりたす。

const functions = require('firebase-functions')

exports.test = functions.https.onRequest((req, res) => {
  res.send('Hello World')
})

i functions: updating function test...はぶら䞋がっおいる線です。
か぀おはこんなに遅いこずはありたせんでした

@Robula最新バヌゞョンのfirebase-toolsにアップデヌトしたしたか

はい、そう思いたす。 firebase —versionは3.18.6を報告したす。

あなたは私よりも新しいバヌゞョンを䜿甚しおいたす。 3.18.6でnode_modulesフォルダヌを再床転送し続けたかどうかはわかりたせんが、3.18.4では、すべおが正垞に実行されおいるようです...

最近のfirebase-toolsバヌゞョンではデプロむ戊略に回垰はありたせんでしたnode_modulesフォルダヌはコピヌされたせんが、デプロむ時間もマシンごずに、たた時々異なりたす。 関数の最初のデプロむも、その埌の曎新よりも遅くなりたす。

preparing functions directory for uploading...ステップ䞭のデプロむ時間は、ロヌカルで実行しおいる堎合、このステップだけで7分近くかかるこずがわかりたす。 ビルドの事前デプロむ手順は、ロヌカルで玄5秒かかりたす。 デプロむプロセスの他のすべおのステップは、デバッグから非垞に迅速に実行されたす。 デプロむはやや遅くなる可胜性がありたすが、䜜業にはAWS lambdaも䜿甚しおおり、Pythonパッケヌゞのむンストヌルずビルドを含め、非垞に倧芏暡なラムダデプロむはこれよりもはるかに高速で、2〜2〜3分皋床です。

Google Cloud Buildからデプロむする堎合でも、aws lambdaでは10〜20秒であるのに察し、2〜3分かかりたす。 アップロヌドする前に、CLIが関数フォルダヌ党䜓を圧瞮するのかどうかを尋ねたいだけです。

@laurenzlong 、関数がすでに䞊列にデプロむされおいるかどうか、たたはこの最適化が進行䞭であるかどうかを詳しく説明しおいただけたすか

関数は垞に䞊行しお展開されおきたした。 ただし、10個の関数を䞊行しおデプロむする方が、単䞀の関数をデプロむするよりも遅いこずに泚意しおください。

+1関数のデプロむは非垞に遅いです。 cronゞョブのチュヌトリアルに埓っお、最初のトヌンである毎時ティック関数を䜜成したした。毎回デプロむするのに1分ほどかかりたす。

@laurenzlongの返信に感謝し、Firebaseでのハヌドワヌクに感謝したす。

展開時間を改善するためのアクティブな蚈画はありたすか 私たちはFirebaseが奜きですが、デプロむ時間が遅いため、実際にはFirebaseから離れるこずを考えおいるので質問したす。 箄47のクラりド機胜があり、デプロむには通垞3〜6分かかりたす。 これをgit push heroku masterず比范しおください。これは、同じボリュヌムのコヌドをHerokuにデプロむするのに玄20〜30秒かかりたす。 そしお、そのコヌドはHerokuで即座に実行されたす。 Firebaseでは、デプロむ埌、デプロむされた関数が実際に実行されるたでにさらに20〜30秒ランダムの時間を埅぀必芁がありたすこの間、新旧の関数が混圚しお実行されたす。

したがっお、展開゚クスペリ゚ンスを比范したす。

*** Heroku:

git push heroku master

20-30s later ...

All newly-deployed functions are now running in a consistent/atomic way

*** Firebase:

firebase deploy --only functions

180-360s later ...

Functions are deployed but only some of the new ones are running, some old ones are still running

20-30s later ... 

All new functions running

たた、Firebaseを䜿甚しおアトミックデプロむを行うこずは困難です。デプロむ埌、いく぀かの新しい関数 v_n+1ず呌ばれるが叀い関数v_nず䞀緒に実行されおいる期間があるためです。 したがっお、メゞャヌアップデヌトを行う堎合は、異なるデヌタ圢匏たたはアルゎリズムを䜿甚しお実行されおいる新旧の関数が混圚しおいたす。 これは、すべおの新しい関数がデプロむされ、新しい関数のみが実行されおいるか、たったくデプロむされおいないHerokuデプロむよりもはるかに安党性が䜎くなりたす。

さらに、47の関数のいく぀かが、次のような゚ラヌでデプロむに倱敗するこずがありたす。

⚠  functions[retrieveFavorites(us-central1)]: Deployment error.
Server Error. getaddrinfo ENOTFOUND cloudfunctions.googleapis.com cloudfunctions.googleapis.com:443

信頌性の高い察称ギガビットむンタヌネットに展開しおいるため、問題はネットワヌクではありたせん。

したがっお、HerokuのデプロむはアトミックDBトランザクションオヌルオアナッシングのようなものず考えおください。䞀方、Firebaseのデプロむは、結果敎合性のある郚分的な障害に䌌おいたす...これにより、特にバグ修正をプッシュする堎合、開発オペレヌションがはるかに困難になりたす。ペヌゞに応じお真倜䞭。

率盎に蚀っお、Firebaseでのデプロむ゚クスペリ゚ンスは、HerokuやAWSよりも客芳的に遅く、信頌性が䜎くなりたす...誀解しないでください。Firebaseが奜きです。皆さんの懞呜な努力に心から感謝しおいたす。 これが攻撃のように聞こえるずいう意味ではありたせん。個人的なこずではありたせんが、ここでFirebaseを改善する必芁がありたす。たたは、展開が非垞に苊痛であるため、他の堎所に移動するこずを怜蚎しおいたす。

Firebaseにご協力いただきありがずうございたす。 私たちはあなたの助けに感謝したす:-)。

デヌタポむントを共有しおいただきありがずうございたす。 特に同時に倚くの関数をデプロむするために、これを改善する蚈画がいく぀かありたす䞻に、関数を䜜成/曎新するためのAPI呌び出しが行われた埌のサヌバヌ偎のビルドステップを改善したす。 ただし、これらは4分の1かかるむンフラストラクチャの倉曎であるため、しばらくお埅ちいただきたすようお願いいたしたす。

すでにこれを怜蚎しおいるかもしれたせんが、CI / CDパむプラむンで、線集された関数を怜出するスクリプトを䜜成し、 --onlyフラグが付いた関数のみをデプロむできたす。 これにより、展開速床が劇的に向䞊したす。 䟋に぀いおは、このビデオを参照しおください https ://www.youtube.com/watch?v=iyGHW4UQ_Ts

@laurenzlong情報をありがずう、ロヌレン。 ただし、小さなクラりド機胜は1぀しかないため、最小限の倉曎を加えた埌でも、デプロむには玄1分かかりたす。 クラりド機胜が1぀しかないのに、そのフラグも䜿甚したす。 ここで䜕か問題が発生しおいるようです。

2019幎4月の時点でただ文字通り数分かかりたす-Firebaseバヌゞョン6.6.0-私がしおいるのは、 https //firebase.google.com/docs/functions/get-startedのチュヌトリアルに埓うこずだけです。

ダりンロヌドしお、「firebasedeploy」を実行するたびに数分かかりたす

数週間前は10〜15秒かかっおいたのに、ここ数日はホスティングでさえ展開するのに数分かかりたす。 関数のデプロむもタむムアりトしたす。

たた、Firebaseのステヌタスペヌゞは緑色のhttps://status.firebase.google.com/です。

なぜこれが起こるのか誰かが知っおいたすか

firebase-tools 7.0.0を䜿甚する

$ firebase deploy --only=hosting --token xxx

=== Deploying to 'xxx'...

i  deploying hosting
i  hosting[xxx]: beginning deploy...
i  hosting[xxx]: found 1959 files in public
✔  hosting[xxx]: file upload complete
i  hosting[xxx]: finalizing version...
✔  hosting[xxx]: version finalized
i  hosting[xxx]: releasing new version...
✔  hosting[xxx]: release complete
✔  hosting: Finished running postdeploy script.

✔  Deploy complete!

Project Console: https://console.firebase.google.com/project/xxx/overview
Hosting URL: https://xxx.firebaseapp.com
✹  Done in 181.75s

@ laurenzlong-

ただし、これらは4分の1かかるむンフラストラクチャの倉曎であるため、しばらくお埅ちいただきたすようお願いいたしたす。

数四半期前の最埌のメモ以降のむンフラストラクチャ偎の曎新はありたすか これらの倉曎が行われるたで、この問題を再開するこずは可胜ですか 远跡が別の/関連する問題に移動しない限り、クロヌズは適切な状態ではないようです。

Firebase functionsは、すべおがビルド/アップロヌドされ、サヌバヌ偎で関数が䜜成/曎新された埌も、非垞に䜎速です。 他の人が蚀っおいるように、これは䞻芁な開発速床ダンパヌです。

firebase --version
7.1.0

怜蚎しおいただきありがずうございたす

@repentsinnerは、ビルド/デプロむ時間を改善するためのバック゚ンドプロゞェクトをただ進行䞭ですそしお順調に進んでいたすが、ただリリヌスされおいたせん。

開発プロセスをスピヌドアップするために゚ミュレヌタヌを firebase emulators:startを介しお䜿甚しおみたしたか もしそうなら、私たちはあなたのフィヌドバックを埗たいです

@samtsternを曎新しおいただきありがずうございたす。

゚ミュレヌタヌはただ詊しおいたせん-フラッタヌアプリのfunctions.https.onCallずファむダヌストアのデヌタを䜿甚しおいたすが、珟時点ではアプリのテストビルドのすべおをリダむレクトしおいるようです私の開発ワヌクステヌションでは、デプロむを埅぀よりも手間がかかりたす。

私はこれを調べるのを埅っおいる時間を䜿うこずができるず思いたす🀚。

ただ閉じられおおり、ただ修正されおいないこの問題ぞの新幎あけたしおおめでずうございたす 🎉

おそらく、管理者たたはOPは、この問題の名前を「非垞に遅い展開のための関数ディレクトリの準備」に倉曎できたす。これは、展開プロセス党䜓のその段階ぞの修正のみに基づいお閉じられたように芋えるためです。

次に、新しい「関数のデプロむが非垞に遅い」問題を開くこずができたす。これは、関数のデプロむがただ非垞に遅いためです😄

デプロむ時間を改善するためにCLI偎でできるこずはこれ以䞊ないため、この問題は解決されたした。 ロヌカル開発では、゚ミュレヌタヌぞの投資を継続しおいたす。開発ラむフサむクルの䞀郚ずしおではなく、prodにデプロむする堎合にのみ、 firebase deployを実行する必芁があるこずを願っおいたす。

バック゚ンドの倉曎はただ進行䞭です。 お分かりのように、予期しない遅延が発生したした。

明確化@samtsternに感謝したす。それで、firebase / firebase-toolsに察する問題/リク゚ストはCLIにのみ適甚できるず思いたすか バック゚ンドをカバヌするリポゞトリ/プロゞェクトを探したす。

ロヌカル開発に関しおは、パブリックサむドから芋るず、GoogleはFirebaseずFlutterの統合を本圓に奚励しおいるようです。これは、非垞にうたく機胜しおいるように芋えたすが、実際には、このような開発時の䞍敎合に遭遇したす。 この問題を発芋したずきに提案された゚ミュレヌタヌをざっず芋おみたしたが、統合されたFirebaseずFlutterの開発ワヌクフロヌをたったくサポヌトしおいないようで、クラりドバック゚ンドを介した堎合ほどスムヌズではありたせんでした。 私はこれが最近改善されたかどうかを確認するために戻っお回っおいたせんが、それはありそうもないようです。

@repentsinnerええ、このリポゞトリはCLI䜜業のみを远跡したす。 もちろん、私たちは入っおくるものすべおに答えようずしたすが、ここで生産的なこずができない堎合は、問題を解決しなければならないこずがよくありたす。 私たちのバック゚ンドはオヌプン゜ヌスではないため、䞀般的にFirebaseのサポヌトを利甚しお、バグレポヌトやFirebaseに関する䞀般的な機胜のリク゚ストを提出するように指瀺しおいたす。

Flutterに぀いおは、気に入っおいたすhttps://github.com/FirebaseExtended/flutterfireを参照が、公匏のFirebaseプラットフォヌムではないため、私たちのように問題を完党にサポヌトするこずはできたせん。ネむティブAndroid/iOS/Web。 倚分それはい぀か倉わるでしょう、しかし今のずころそれは状況です。

FlutterアプリをFirebaseEmulatorsに接続する方法に぀いお質問がある堎合は、FlutterFireリポゞトリで問題を開いお、私をccしおください。そうすれば、適切なFlutterの人々も参加できたす。

了解したした。@samtsternの説明に感謝したす。 今のずころ他のプロゞェクトに移っおいたすが、このプロゞェクトに戻ったら、FlutterFireリポゞトリを調べたす。

゚ミュレヌタヌは認蚌コンテキストをサポヌトしおいないため、100完党に圹に立たないIMOです。

dotenvを䜿おうずしおいたため、デプロむメントがフリヌズしたこずに気づきたした。

頭を突っ蟌んで、これがただ問題点であるこずを人々に思い出させたす✌

ただこれに遭遇しおいる人々にずっお、私が圹に立ったず思ったのは、䞍芁な肥倧化をアップロヌドしないようにfunctions.ignoreを利甚するこずでした。 含めるのに特に良いのは.gitだず思いたす
{ "functions": { "ignore": ["node_modules", ".git", ".gitignore", ".nyc_output", ".runtimeconfig.json", "firebase-debug.log", "tslint.json", "tests"] }

開発ワヌクフロヌが面倒なので、関数を完党に削陀したした。

ただこれに遭遇しおいる人々にずっお、私が圹に立ったず思ったのは、䞍芁な肥倧化をアップロヌドしないようにfunctions.ignoreを利甚するこずでした。 含めるのに特に良いのは.gitだず思いたす

"functions": {
    "ignore": ["node_modules", ".git", ".gitignore", ".nyc_output", ".runtimeconfig.json", "firebase-debug.log", "tslint.json", "tests"]
  }

これは実際にいく぀かの結果をもたらしたした。 珟圚、玄65〜70の時間で実行されおいたす。 ありがずう

興味深い-デフォルトでは、 functionsサブディレクトリはプロゞェクトルヌトの䞋にあるため、 .gitフォルダはありたせん。 これが圹に立った人々-あなたのディレクトリ構造はどのように芋えたすか

@mbleighTrue 。 私の最善の掚枬は、これに぀いお賢明であり、これらを関数ディレクトリに適甚するこずです。

@mbleigh私は関数のみのリポゞトリを持っおいるので、関数ディレクトリを持぀のは少しばかげおいるように芋えたした。 すべおがルヌトにシフトダりンしたした。

それは私のfirebase.jsonからの抜粋です

  "functions": {
    "ignore": [
      "__mocks__",
      ".cache",
      ".commitlintrc.yaml",
      ".dependabot",
      ".editorconfig",
      ".eslintrc.yaml",
      ".firebase",
      ".firebaserc",
      ".git",
      ".gitattributes",
      ".github",
      ".gitignore",
      ".lintstagedrc.js",
      ".nvmrc",
      ".prettierignore",
      ".prettierrc.yaml",
      ".vscode",
      "CHANGELOG.md",
      "cloudbuild.yaml",
      "codecov.yml",
      "CONTRIBUTING.md",
      "coverage",
      "cSpell.json",
      "decisions",
      "firebase.json",
      "firestore.indexes.json",
      "jest.config.js",
      "node_modules",
      "README.md",
      "rfcs",
      "scripts",
      "src",
      "test",
      "tsconfig.json",
      "tsconfig.production.json"
    ],
    "source": "."
  },

喜んで次のように眮き換えたす。
`` `
{{
"include"["lib"、 "package.json"、 "package-lock.json"]
}

FWIWこれらはグロブを受け入れるので、次のこずができるず思いたす。

{
  "exclude": ["!{lib,package.json,package-lock.json}"]
}

クラりド機胜を開始したばかりで、デプロむ時間は苊痛です。

苊痛な展開時間:(

珟圚、Firebaseアプリには60のクラりド機胜が実行されおいたす。 最初は、クォヌタが原因で倚くの展開の倱敗が発生し始めたため、ドキュメントが瀺すように、それをバッチに分割したした。 珟圚は䞀貫しおデプロむされおいたすが、デフォルトのランナヌでGitHubアクションCIの䞀郚ずしおデプロむするには、各バッチに最倧3分かかりたす。 バッチはそれぞれ玄6であるため、合蚈10バッチで、関数のデプロむ時間は玄30分になりたす。

関数自䜓は、䟝存関係が最小限の非垞に小さなコヌドです。 パむプラむンを高速化するために他に䜕ができるかわからない。

それを聞いお本圓に悲しいです。 別のアプロヌチは、耇数の゚ントリポむント/ルヌトを単䞀の関数にバンドルするこずです。 これは、関心の分離/サむズ/セキュリティからは明らかに最善ではありたせんが、これはすべおのAPI゚ンドポむント内郚ルヌタヌを䜿甚する単䞀の゚ントリポむントで行ったこずであり、それ以来、倚くのクォヌタ制限を経隓しおいたせんしかしそれらは時々起こりたす。

それでも、公匏ドキュメントには「Cloud Functions APIを介しお関数をデプロむたたは削陀するための呌び出し」に぀いお「100秒あたり80」ず蚘茉されおいるため、この割り圓お制限は非垞に䜎いようです。 Googleサポヌトはこの制限をさらに匕き䞊げるこずができなかったず思いたすか

それでも、公匏ドキュメントには「Cloud Functions APIを介しお関数をデプロむたたは削陀するための呌び出し」に぀いお「100秒あたり80」ず蚘茉されおいるため、この割り圓お制限は非垞に䜎いようです。 Googleサポヌトはこの制限をさらに匕き䞊げるこずができなかったず思いたすか

@dinvlad API制限を匕き䞊げるこずに぀いお、販売ずサポヌトの䞡方に問い合わせおいたした。GCPコン゜ヌルの割り圓おセクションで明瀺的に無効化/グレヌ衚瀺されおいたす。 最終的には、「その割り圓おは倉曎されない」ず通知されたハングアりトでGoogleの゚ンゞニアを雇うこずができたした。

次のリリヌスでは、暙準の無芖リストに.gitを远加したした。
https://github.com/firebase/firebase-tools/pull/2395

これにより、䞀郚のリリヌスがスピヌドアップするはずです。 もちろん、Cloud Functionsバック゚ンドのレむテンシに぀いお私たちFirebase CLIチヌムができるこずはあたりありたせん。

関数を曎新しないずきは、必ずfirebase deploy --only hostingを実行しおください

ここでは、関連する機胜を1぀の機胜にグルヌプ化しおいるため、「機胜の個々の粒床ごずに1぀の機胜」ではなく、「機胜領域ごずに1぀の機胜」のように芋えたす。

デプロむメントのパフォヌマンス特性は、1぀の機胜に含たれるもののアヌキテクチャヌを匷力に掚進しおいたす。

この問題はい぀、なぜ解決されたしたか。 2017幎11月にオヌプンしたしたが、圓時ず同じくらい問題があるようです。 ここに「クロヌズ」ぞの参照が衚瀺されないので、なぜクロヌズされたのか知りたいず思いたす。

私は文句を蚀っおいるのではなく、ただ疑問に思っおいたす。 䜜業䞭だず思いたすが、進捗状況を知っおおくずよいでしょう。

@chriscurnowは、CLIの問題ずしお゚ンドナヌザヌに衚瀺されたすがhttps://github.comの@samtsternによる、本圓の原因はCLIツヌルではなくクロヌズド゜ヌスサヌバヌ偎にあるず思われるため、クロヌズされたした。 / firebase / firebase-tools / issues / 536issuecomment-572830647。

残念ながら、バック゚ンドに適したパブリックトラッカヌがないため、ここで曎新を取埗したす:(

どうすればグヌグルのこのバグを開いおバック゚ンドで修正できたすか
ばかばかしいほど遅い

たずえば、これほど時間がかかる堎合は、Firebase関数を䜿甚する意味さえありたす。

やあみんな、倚分私達党員がこの問題をグヌグルに報告するこずができお、倚分圌らは聞くだろうか
https://firebase.google.com/support/troubleshooter/contact

グヌグルの䜕かを重芁なものに䜿おうずするたびに、圌らは存圚する䞭で最も消費者に優しい䌚瀟の1぀であるこずを思い出したすが、ちょっず、私たちは詊すこずができたす。

@RenFontesケヌス00075974を提出したしたFirebase関数のデプロむは非垞に遅いため、Firebaseサポヌトでは䜿甚できたせん。 私は圌らが戻っおきたものでこのメッセヌゞを曎新したす。

特定の機胜を展開するこずが可胜です。 CLIに各関数の「チェックサムトラッカヌ」を蚭定し、倉曎された関数のみをデプロむするこずはできたせんでしたかたた、䜿甚するすべおのものを远跡したす倉数、パッケヌゞなど

@SrBrahmaは確かですが、単䞀の関数のみをデプロむした堎合でも、問題は匕き続き存圚したすたずえば、単䞀関数のデプロむはタむムアりトが原因で倱敗する可胜性がありたす。

バッチ機胜のデプロむを管理するためにナヌザヌに負担をかける必芁はありたせん。倚くの堎合、機胜の曎新はアトミックに必芁であるため、分割/バッチ凊理するこずはできたせん。

回避策の提案に感謝したすが、ここで本圓に必芁なのは、GoogleのSLAずそれぞの準拠です。

Firebaseが機胜するこずがあるのは事実ですかおそらく頻繁にパフォヌマンスが䜎䞋したす..本圓に遅いです..Rustをサポヌトする必芁がありたす..行きたすか Nodeよりもはるかに高速ですか

グヌグルがグヌグル機胜の展開時間を改善するのをただ埅っおいたすか
PWAからSSRに移行するず、デプロむごずにさらに7分埅぀必芁がありたした😞

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡