无服务器功能的查找表应该存储在哪里?
Where should lookup tables be stored for serverless functions?
我正在使用 Google Cloud Functions 构建我的应用程序并且目前有一个数据库。每个云功能将使用不同的查询来查询此 table 以在将其添加到数据库之前对其信息进行标准化。这感觉不太好,因为 table 始终是静态的(我偶尔可能会进行手动更改),因此数据库查找感觉很慢且占用大量资源。此外,每个云功能都使用一个连接,因此连接限制将很快耗尽,但我不确定这是否能解决任何问题,因为它仍然需要连接才能将数据输入数据库。它所做的只是删除额外的 1-3 次调用以标准化数据。
将这个 table 存储在数据库中是最好的方法吗?还是将它存储在 javascript 数组文件或其他地方更好?
如果要缓存数据,可以在第一次加载数据时将数据写入本地 tmp
目录中的文件。如果同一个容器实例用于 运行 您的 Cloud Functions 的另一个实例,该文件仍将存在并且您可以读取它。但是:这与将数据保存在内存中是一样的,因为 /tmp
实际上是作为 RAM/in-memory 磁盘实现的。因此,您也可以简单地在数据周围保留一个变量。
除此之外,您可以在 Cloud Functions 中缓存的内容并不多。您可以考虑将数据包含在部署的文件中,或包含在作为部署一部分的本地 sqlite 数据库中。但这意味着当数据库发生变化时,您将不得不再次部署 Cloud Functions,因此这完全取决于数据更改的频率以及发生这种情况时您愿意做什么。
我正在使用 Google Cloud Functions 构建我的应用程序并且目前有一个数据库。每个云功能将使用不同的查询来查询此 table 以在将其添加到数据库之前对其信息进行标准化。这感觉不太好,因为 table 始终是静态的(我偶尔可能会进行手动更改),因此数据库查找感觉很慢且占用大量资源。此外,每个云功能都使用一个连接,因此连接限制将很快耗尽,但我不确定这是否能解决任何问题,因为它仍然需要连接才能将数据输入数据库。它所做的只是删除额外的 1-3 次调用以标准化数据。
将这个 table 存储在数据库中是最好的方法吗?还是将它存储在 javascript 数组文件或其他地方更好?
如果要缓存数据,可以在第一次加载数据时将数据写入本地 tmp
目录中的文件。如果同一个容器实例用于 运行 您的 Cloud Functions 的另一个实例,该文件仍将存在并且您可以读取它。但是:这与将数据保存在内存中是一样的,因为 /tmp
实际上是作为 RAM/in-memory 磁盘实现的。因此,您也可以简单地在数据周围保留一个变量。
除此之外,您可以在 Cloud Functions 中缓存的内容并不多。您可以考虑将数据包含在部署的文件中,或包含在作为部署一部分的本地 sqlite 数据库中。但这意味着当数据库发生变化时,您将不得不再次部署 Cloud Functions,因此这完全取决于数据更改的频率以及发生这种情况时您愿意做什么。