【问题标题】:Why is firebase functions deployment extremly slow?为什么 Firebase 功能部署非常缓慢?
【发布时间】:2020-07-30 06:41:05
【问题描述】:

当我运行命令“firebase deploy --only functions”时,即使我没有更新我的函数,也需要大约 1 分钟来部署我的函数。
我做错了吗?
可能是因为我的函数文件夹中的 node_modules 文件夹吗?
Firebase 中的功能部署是否很慢?
控制台日志:

C:\Users\myUser\Desktop\myProject> firebase deploy --only functions

=== Deploying to 'myProject'...

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 (36.96 KB) for uploading
+  functions: functions folder uploaded successfully
i  functions: updating Node.js 10 (Beta) function myFunction(europe-west1)...
i  scheduler: ensuring necessary APIs are enabled...
i  pubsub: ensuring necessary APIs are enabled...
+  scheduler: all necessary APIs are enabled
+  pubsub: all necessary APIs are enabled
i  functions: scheduler job firebase-schedule-myFunction-europe-west1 is up to date, no changes required
+  functions[myFunction(europe-west1)]: Successful update operation.

+  Deploy complete!

通常会在这条线上卡住 1 分钟:

i  functions: scheduler job firebase-schedule-svt-europe-west1 is up to date, no changes required

【问题讨论】:

  • 我投票结束这个问题,因为它应该针对 Firebase 支持。 support.google.com/firebase/contact/support
  • 如果您经常部署以测试您的功能,您可能希望查看本地模拟器,它会热重新加载您所做的任何更改。
  • 如果您需要对云上的逻辑进行频繁更改,那么一种可能的解决方案是将 JavaScript 代码存储在 Database 或 Storage 服务中,然后下载 Cloud Function 并eval()它(这具有安全隐患,因此请确保仅运行受信任的代码并保护代码存储免受未经授权的修改)。

标签: firebase google-cloud-firestore google-cloud-functions


【解决方案1】:

1-2 分钟是典型的。与其他一些 FaaS 提供商不同,Cloud Functions 实际上是在云中运行 npm install 并构建 node_modules,这确实需要一些时间,但也意味着您无需担心交叉编译原生依赖项。

Cloud Functions 不知道您是否更新了函数,因此它每次都会重新部署。

我的建议是只更新您更改的功能。您可以通过以下方式做到这一点:

firebase deploy --only functions:specificFunctionName,functions:anotherFunctionName,etc

这应该至少会加快一点速度,但可能不会很多。

【讨论】:

  • 应该根据 package-lock.json 缓存 node_modules
  • 只是为了给这个命令添加一个注释它实际上是 firebase deploy --only functions:specificFunctionName,functions:anotherFunctionName,... 确保在逗号之后和名称之前添加“functions:”您正在部署的每个功能的功能。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-23
  • 2018-11-11
  • 1970-01-01
  • 2021-06-15
  • 2014-10-19
  • 2010-10-24
  • 1970-01-01
相关资源
最近更新 更多