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

使用Cosmos DB绑定从Azure函数执行Cosmos DB服务器端触发器

葛承德
2023-03-14

我有一个Azure函数,使用Python编写的Cosmos DB触发器,该触发器有到Cosmos DB的内外绑定,所以当容器中的文档更新时,我会在另一个容器中创建一个新文档。我想在第二个容器中创建一个服务器端的Cosmos DB触发器,在创建新文档时需要触发这个触发器。在我看到的例子中,他们展示了如何使用Python SDK来执行触发器,但我想知道是否有可能使用函数中已有的绑定来执行触发器,而不是将Azure Cosmos库包含到我的函数中。SDK示例显示< code > container . create _ item(item,{ ' post _ trigger _ include ':' trgprevidatetodoitemtimestamp ' })执行触发器,但我希望Azure函数绑定中使用的“set”方法也有类似的选项来创建新文档(如< code>container.set(doc,{ ' post _ trigger _ include ':' trgprevidatetoitemtimestamp ' })),但这不起作用。

共有1个答案

高晋
2023-03-14

简单的回答是没有。

Azure函数绑定通过通用接口公开(所有绑定都有相同的接口),所以它不允许额外的输入参数。

如果函数在 .NET 上运行,则另一种方法是使用绑定来访问客户端实例,并使用客户端实例而不是绑定接口来执行操作:https://docs.microsoft.com/azure/azure-functions/functions-bindings-cosmosdb-v2-input?tabs=in-process,functionsv2

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

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

  • 我已经创建了一个azure函数,当一个新文档被添加到一个集合中时,它会被触发。 是否可以从该集合中选择特定文档,然后查询所选文档中的数据? 例如,在所谓的募集服装,我有一个文件,有一个ID: 12345Tops.我想查询ID为:12345Tops的文档中找到的数据。 或者检索集合中的第一个文档,然后查询第一个选定文档 我看过带有http触发器的azure函数:https://docs.micros

  • 我将JSON文档上传到Azure Blob容器中,并编写了Azure Python函数将JSON写入CosmosDB。触发工作正常,但我出错了。下面是Python函数: 以下是function.json文件: 这是我在Azure门户中看到的错误: 结果:失败异常:函数加载错误:无法加载JsonBobTrigger1函数:以下参数在Python中声明,但在function.json中没有声明:{'d

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

  • 我正在运行Visual Studio 2017预览并在本地运行函数代码,我正在使用开箱即用的Azure函数项目模板。我试图让一个由定时器触发的Azure函数使用输出绑定向服务总线队列发送消息,但WebJob SDK似乎无法将输出绑定到字符串类型。 结合 定时器功能 错误消息 TimerTriggerCSharp: Microsoft.Azure.WebJobs.Host: Error indexi