了解Firebase云功能“冷启动”

时间:2020-09-04 13:22:56

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

文档中提到

函数是无状态的,执行环境通常是 从头开始初始化,这称为冷启动。

此语句暗示* 有时 *,不是是从Scracth初始化的,并且可以重复使用状态。

这是一个可靠的假设吗?

插图

var count = 0; // global variable

functiion mycouldFunction(){
  count ++;
  return count;

}

如果我两次呼叫myCloudFunction并且相隔X倍的时间,我是否希望它返回“ 1”然后“ 2”

然后在Y量时间后进行第3次通话,我应该期望它再次返回“ 1”吗?

如果是这样,那么X和Y的值是多少?

2 个答案:

答案 0 :(得分:1)

作为优化,

Cloud Functions确实会有时重用服务器实例来处理多个请求。无法保证是否或何时会发生这种情况。除非您自己实施某种优化(例如内存缓存),否则不建议在全局内存中存储任何内容,因为您的函数可能会因其任何调用而受到冷启动。

答案 1 :(得分:0)

否,云函数是无状态的,因此每次调用myCloudFunction时,它将返回1。

要实现所需的功能,您需要将更新的值存储在Firestore或RTDB或类似数据库中,并在每次加载时读取更新的值。

“冷启动”指的与上述内容无关,它与功能的服务方式有关。 GCF将“关闭”不常用的功能,因此它们的响应速度可能比“打开”并准备接收请求的功能慢。