冷启动在某些情况下会有好处吗?(云功能)



我正在开发一个项目,该项目将具有+100个云功能,因此为了使工作更容易,我将像这样构建我的所有功能:

/functions
/src
spotify/ 
searchMusic.function.js
...
auth/
signUp.function.js
...
...
index.js // Auto export every cloud function

在每个以.function.js结尾的文件中,我导出一个唯一的云函数。我的问题是,由于我每个文件没有超过一个谷歌云函数,我应该进行懒惰的导入/初始化吗?

例如,我知道当一个模块中有两个函数,其中一个不使用另一个中使用的包时,这样做是有用的:

const is_f1_admin_initialized = false;
exports.f1 = functions.region...{
const admin = require("firebase-admin");
// Lazy initialization
if(!is_f1_admin_initialized) {
// Initialize the admin SDK
...
is_f1_admin_initialized = true;
}
}
exports.f2 = functions.region...{}

但在我的情况下,f1.function.js中只有f1,懒惰的导入/初始化会减少冷启动吗?还是在全球范围内进行所有进口会更好?

谢谢。

更新

这就是我的意思:

"use-strict";
const functions = require("firebase-functions");
const admin = require("firebase-admin");
// All my imports...
// The admin SDK can only be initialized once.
try {
const googleCloudServiceAccount = require("../../utils/json/googleCloudServiceAccount.json");
admin.initializeApp({
...
});
} catch (e) {}

// The unique cloud function in the module
exports.function = functions.region...

// All my helper functions...

但在我的情况下,f1.function.js中只有f1,延迟导入/初始化会减少冷启动吗?

不,没有什么区别。

在任何一种情况下(在全局范围内或在函数内运行(,代码都处于为第一个请求提供服务的关键路径中。更改作用域不会更改代码运行所需的时间。

只有当您有多个函数不共享代码时,将代码移出全局范围才会有所帮助。将代码的执行转移到函数中只需确保其他函数不会不必要地执行它

相关内容

  • 没有找到相关文章

最新更新