google-cloud-platform - 如何让 Google Cloud Functions 保持温暖?

标签 google-cloud-platform google-cloud-functions next.js serverless firebase-hosting

我知道这可能会错过使用 Cloud Functions 的初衷,但在我的具体情况下,我使用 Cloud Functions 是因为这是我将 Next.js 与 Firebase Hosting 桥接的唯一方法。我不需要使其具有成本效益等。

话虽如此,云功能的冷启动时间简直令人难以忍受,而且无法投入生产,对于我的样板来说,平均需要大约 10 到 15 秒。

我观看了 Google 的这段视频 ( https://www.youtube.com/watch?v=IOXrwFqR6kY ),其中讨论了如何减少冷启动时间。简而言之:1) 修剪依赖项,2) 对 Google 网络上的缓存依赖项版本进行试验和错误,3) 延迟加载。

但是 1) 我只能修剪这么多的依赖项。 2)我如何知道哪个版本缓存更多? 3)我只能延迟加载这么多依赖项。

另一种方法是完全避免冷启动。有什么好方法或技巧可以让我的(唯一的)云功能保持温暖?

最佳答案

对于所有“无服务器”计算提供商,总会存在某种无法消除的冷启动成本。即使您能够通过 ping 单个实例来使其保持事件状态,系统也可能会启动任意数量的其他实例来处理当前负载。这些新实例将产生冷启动成本。然后,当负载减少时,不必要的实例将被关闭。

正如您所发现的,有多种方法可以最大限度地降低冷启动成本,但这些成本无法消除。

自 2021 年 9 月起,您现在可以指定保持事件状态的最小实例数。这可以帮助减少(但不能消除)冷启动。阅读Google Cloud blogdocumentation 。对于 Firebase,请阅读其 documentation 。请注意,设置最小实例会产生额外费用 - 保持计算资源处于事件状态并不是一项免费服务。

如果您绝对需要热服务器 24/7 处理请求,那么您需要管理自己的 24/7 运行的服务器(并支付那些 24/7 运行的服务器的成本)。正如您所看到的,无服务器的好处是您无需管理或扩展自己的服务器,并且只需为您使用的内容付费,但与您的项目相关的冷启动成本是不可预测的。这就是权衡。

关于google-cloud-platform - 如何让 Google Cloud Functions 保持温暖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51782742/

相关文章:

linux - Nginx 服务器没有重启

kubernetes - gke上的kubernetes/为什么要强制使用负载均衡器?

python - 无法创建 Dataproc 集群

ios - 在设备上捆绑 Firebase JavaScript 无服务器代码以供离线访问

python - 从 gcloud ml-engine 作业访问 Big Query

Firebase 云函数身份验证触发时间

javascript - 如何仅在将子项添加到数据库时才触发云功能?

reactjs - NextJs 和动态路由 - 如何处理空参数场景?

css - 使用 Tailwind 时如何更改滚动条 (next.js/react)

reactjs - 如何配置nextjs 9 与ant design 兼容性较差?