通过调整依赖性减少Cloud功能的冷启动时间

时间:2018-10-01 04:47:30

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

在Cloud函数中,从包.json中修剪依赖项是否可以有效减少冷启动时间? 如果答案是肯定的,那么如何将依赖项移至devDependencies?

我正在将Cloud函数用于Firebase,并且它在不带node_modules的functions文件夹下上传文件。

云功能容器中的node_modules目录由云功能自动创建。 因此,很难调查上述对策是否有效。

1 个答案:

答案 0 :(得分:3)

package.json中删除依赖关系可能对部署时间影响很小,但通常不会对冷启动产生影响。冷启动仅受您在代码中加载的程序包的影响,即引导功能所需的require()语句的数量。

如果只用于一个功能,则最好在功能体内使用软件包。例如:

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

exports.myFunction = functions.https.onRequest((req, res) => {
  const lib1 = require('lib1');
  const lib2 = require('lib2');

  res.send(lib1.callMethod(lib2.otherMethod()));
});

如果您在Firebase CLI部署的同一文件中具有其他功能,则它们将不会加载lib1lib2,因为它们仅在内部功能主体。