为了尽量减少冷启动,我为我的谷歌云函数设置了一个最小实例。我实际上是用这样的 firebase admin SDK 来做的:
functions.runWith({ minInstances: 1 })
...但我可以在 Google Cloud Console 中看到它得到确认:
我注意到每次部署后,我仍然会遇到一个冷启动。我会假设一个实例已准备好并准备好接受第一个请求,但事实似乎并非如此。例如,以下是日志:
您可以看到部署后约 16 小时,第一个请求进来。这是一个冷启动,需要 8139 毫秒。下一个请求大约在一个小时后到来,但没有冷启动,请求需要 556 毫秒,比第一个请求快得多。
这是预期的行为吗?即使设置了最小实例,我们还会遇到冷启动吗?然后,我是否应该在每次部署后使用虚拟请求启动云功能,以防止我的用户遇到第一次冷启动?