我的应用程序需要在处理用户的请求之前构建几个大型 HashMap 。理想情况下,我希望将这些 HashMap 存储在计算机的内存中,这意味着它永远不需要进行任何昂贵的处理,并且可以快速处理任何传入的请求。
但这不适用于 Firebase,因为用户有可能触发一个新实例,从而启动非常耗时的预处理步骤。
因此,我尝试设计我的应用程序以使用 firebase 数据库,并且每次仅从数据库获取所需的数据,而不是将所有数据保存在内存中。但是,由于云函数正在从数据库下载大量数据,仅我自己进行测试,这个月的下载量就已超过 1.7 GB。这超出了配额。
一定是我遗漏了一些东西;我想要的只是一些 HashMap 的永久内存存储。我想要的只是让这些 HashMap 在通过请求调用函数时准备好。这似乎是一个简单的要求;怎么就没有办法做到这一点呢?
最佳答案
如果您想将数据存储在运行 Cloud Functions 的容器中,可以使用 its local tempfs ,实际上保存在内存中。但是,当容器被回收时,这种情况就会消失,当您的函数有一段时间没有被访问时,就会发生这种情况。因此,只要容器启动,就必须重建此本地文件系统。
如果您希望永久存储生成的值,请考虑使用 Google Cloud Storage。它可能是一种更具成本效益的选择,而且绝对是最具可扩展性的选择。
关于firebase - 如何将对象存储在 firebase cloud function RAM 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44856676/