首页 > 解决方案 > 在生产 Firebase 函数中公开垃圾收集(例如 --expose-gc)

问题描述

我们想global.gc()从 Firebase 函数中运行。在本地,我们使用 启动节点进程node --expose-gc ...。我们如何使用已部署的 Firebase 函数来做同样的事情?

node --expose-gc据我所知, Firebase 函数启动时无法注入。NODE_OPTIONS="--expose-gc此外,在 Firebase 功能启动节点之前似乎无法设置。

我们已经尝试process.env.NODE_OPTIONS='--expose-gc'从 Firebase 函数中进行设置。然而,那是行不通的。我们假设不起作用的原因是--expose-gc必须在节点启动时设置(而不是在节点已经运行之后)。

标签: javascriptnode.jsfirebasegoogle-cloud-functions

解决方案


无法为运行您的函数的节点进程指定任何命令行参数。这实际上是一个安全问题。只要 GC 必须通过命令行参数启用,您尝试使用 Cloud Functions 执行的操作将是不可能的。

考虑改为使用 Cloud Run,它允许您以任何方式构建服务器映像,包括运行节点的参数。


推荐阅读