在Azure Functions中,我可以轻松创建与Cosmos DB Connection的输入绑定,并指定SqlQuery以在每次调用时将一些数据传递到我的函数中,如下所述: https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-cosmosdb#input---example-2
我想知道这个查询是否在每次调用函数时执行,或者是否在幕后发生某种缓存(甚至可能使用ChangeFeed或其他一些机制来检测更改)?
当来自查询的数据不经常变化时,我想我自己查询数据并将其存储在我的函数中的静态缓存中会更有效。
答案 0 :(得分:1)
每次都会执行查询。
Azure功能具有无状态特性。即使某些事情可以而且应该在请求之间重复使用(例如,连接到远程资源),但对于大多数事情,您应该假设每次都会发生所有加载。
根据查询结果,缓存每个查询结果可能会占用大量内存。请记住,你支付内存消耗。
此外,我不确定是否有办法缓存自定义Cosmos数据库查询的结果,然后具有可靠的缓存失效,即使是基于更改源。
总体而言,缓存在您的方案中可能会有效,但在所有方案中都无效。因此,默认情况下缓存不是一件事。