当前位置: 首页 > 知识库问答 >
问题:

CosmosDB的Azure函数输入绑定:每次调用都会加载数据吗?

充小云
2023-03-14

在Azure Functions中,我可以轻松地创建到Cosmos DB Connection的输入绑定,并指定SqlQuery,以便在每次调用时将一些数据传递到我的函数中,如下所述:https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-cosmosdb#input---example-2

我想知道这个查询是在每次调用函数时执行的,还是在后台发生了某种缓存(甚至可能使用ChangeFeed或其他机制来检测更改)?

当来自查询的数据不经常更改时,我想自己查询数据并将其存储在函数的静态缓存中会更有效。

共有1个答案

方长卿
2023-03-14

每次都会执行查询。

Azure Functions具有无状态性质。即使有些东西可以并且应该在请求之间重用(例如到远程资源的连接),对于大多数事情,您应该假设每次都会发生所有加载。

根据查询结果,缓存每个查询结果可能会消耗大量内存。记住,你要为内存消耗买单。

此外,我不确定是否有办法缓存自定义Cosmos DB查询的结果,然后进行可靠的缓存失效,即使是基于更改提要。

总的来说,缓存可能在您的场景中有效,但不可能在所有场景中都有效。所以,默认情况下缓存不是一件事。

 类似资料:
  • 我在CosmosDB中有两个集合,和。 集合保存所有历史价格,并不断更新。 我想创建一个Azure函数,它监听< code>StockPrices更新(< code>CosmosDBTrigger),然后对触发器传递的每个< code >文档执行以下操作: 在集合中查找具有匹配代码的股票 在集合中更新股票价格 我不能用<code>CosmosDB(绑定仅在触发器传递单个项时有效)。 我看到它工作的

  • 我对Azure函数和CosmosDB输出绑定有问题。我现在拥有的是:我从一个Cosmos DB容器中读取数据,处理一些东西,然后将结果输出回同一个DB但不同的容器。我正在使用VSCode和python,并测试了其他输出(blob、HTTP响应等),所有这些都正常工作,所以我认为这是CosmosDB的问题。 主要功能定义如下: function.json输出绑定如下: 请注意,我使用和我的扩展手动安

  • 我制作了一个Azure函数(http触发器),并使用Visual Studio 2019将其部署在门户中。 该函数工作正常,我现在将添加一个绑定到我的CosmosDB。我导航到我的函数,然后单击“集成”。现在我看到了触发器、函数以及输入和输出绑定。 我应该可以在这里添加一个新的输入绑定。但我没有“添加”按钮。我做错了什么?

  • 在app服务中有一个learn_DOCUMENTDB配置设置,它具有到cosmos db实例的有效连接字符串(是自动创建的)。 错误日志条目表示: 无法将CosmosDB绑定到类型“System.String”。可能的原因:1)试图绑定到“Microsoft.Azure.Documents.Client.DocumentClient,Microsoft.Azure.DocumentDB.Core,

  • 我有一个EventHubTrighted函数app。下面是方法签名的代码示例: @functionname(“foo”)@storageaccount(“foostorageRead”)public HttpResponseMessage run(@httptrigger(name=“req”,methods={httpmethod.post},authLevel=authorizationlev

  • 问题内容: 每次我尝试将任何内容推送到GitHub时,它都会询问我地址,然后它要求密码。有没有办法使它自动化? 我正在使用Linux Ubuntu。 问题答案: 您可以用来记住密码(通常,Gnome会自动为您运行密码)。 从现在开始,在您运行此程序的终端中,您的密码将被记住。 理想情况下,它会自动运行,因此在gnome中运行的所有shell都可以工作。查看Gnome Keyring 。