问题标签 [cosmosdbtrigger]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
750 浏览

azure-functions - Azure Function App CosmosDbTrigger Gives Null Parameter Error

I am defining an Azure Function App as follows:

I am publishing from visual studio and it works without any errors. However, the Function is never triggered even after changes in the Collection. If I run the function manually, I get error:

The above is the exact error message and I don't have any parameter by the name 'o'. What could I be missing.

Update: In case it makes a difference, the Function App is under a different subscription than the Cosmos.

0 投票
1 回答
266 浏览

triggers - Azure Function App CosmosDBTrigger 被执行两次

我已经设置了一个 Azure 函数,以便在 CosmosDB 发生更改时触发,从而使其成为 CosmosDBTrigger。似乎该函数被调用了两次。我通过查看监视器知道这一点。这两个电话彼此在几分钟内发生。

我不确定为什么相同的函数会被调用两次,或者是否有某个设置会导致这种情况?

0 投票
1 回答
492 浏览

visual-studio - 设置中的 Azure 函数参数

参考以下示例:

我了解,connectionStringSetting 不是要使用的连接字符串,而是要查找的包含 ConnectionString 的设置的名称。

这也适用于 CollectionName 和 databasename 吗?我知道我可以尝试并弄清楚,但我对如何在构建时/部署时解决这个问题感到困惑?

我看到几个属性被分配了值,而其他属性则从配置中获取它们?它是 CosmosDBTrigger 的底层构造函数,它负责使用适当的值吗?

0 投票
1 回答
1846 浏览

c# - 带有 Cosmos DB 输入的 Azure 函数 HttpTrigger

我正在尝试使用 cosmos DB 输入绑定创建一个 Azure 函数 HttpTrigger。但它给了我一个类型错误。

Http 触发器

这是我正在尝试的:

它给了我以下错误:

任何人都可以帮我输入类型吗?

0 投票
0 回答
84 浏览

azure-functions - CosmosDBTrigger 丢失文档更改或仅在重新启动期间捕获最近的更改

最近我遇到一个问题,我的CosmosDBTrigger Azure Function只会在重启时捕获我的最后一条更新记录,或者如果在重启期间有文档更改,有时甚至没有机会触发重启

函数 1用于通过HttpTrigger从集合中更新我的商品(A、B 和 C)价格。

函数 2将跟踪更新事件,并通过CosmosDBTrigger将它们记录到数据库中,当然还有租赁文档。

如果我的功能 2停止,而在重新启动期间,我的功能 1有 3 次 Http 调用,它们更新了我的几个项目的总价格 3 次,例如

在我的Function 2重新启动后,我发现了两个问题:

  1. 有时我的函数 2不会触发,这意味着它丢失了所有更新,并且它随机发生......(我假设租约集合将存储每个数据库更新的检查点,而 CosmosDBTrigger 将查看每个检查点的租约文档以重新捕获上次它停止,对吗?)
  2. 每当我的功能 2能够在重新启动后触发时,我认为它能够捕获我对项目 A、B 和 C 的所有 3 次更新,但是它没有捕获我的前 2 次更新,而只捕获了最后一次更新是

对于 No.1,为什么 CosmosDBTrigger有时可以捕获我之前的更改但有时会失败?我们真的很担心这一点,因为首先它是随机发生的,其次我们可能会由于无法解释的原因丢失我们的数据......

是否有任何时间段可以临时存储更新,例如 30 秒、60 秒?或者租约集合会覆盖我之前在检查点的更新吗?那么在lease collection里面,每个item代表什么?

对于 No.2,这种情况是设计使然,还是我做错了什么,或者任何设置都可以帮助我跟踪/保留所有更新更改(在历史记录中),以便稍后我可以捕获所有更新然后通过CosmosDBTrigger函数?

0 投票
1 回答
335 浏览

java - 天蓝色函数 java CosmosDBTrigger-input 和 @SignalROutput-output,错误:无法创建集合信息

我已将安全数据替换为占位符

在本地运行以及部署后出错 -

local.settings.json 文件 -

代码 -

集合和数据库已经创建,但我还没有创建租约集合。

我正在使用 cosmos db、signalr 和 azure 函数开发实时应用程序,但我已经被这个错误困扰了很长一段时间了。

0 投票
1 回答
554 浏览

azure-functions - CosmosDBTrigger 可靠地处理每个文档一次?

我的客户想使用 CosmosDBTrigger 将文档传输到 Azure 服务总线。在这种情况下,在 Cosmos 项突变和服务总线消息之间建立 1:1 的关系很重要。因此,触发器接收的每个文档(通过批处理)必须只处理一次,这导致了一些我无法确认的基本问题:

  • 如果代码在处理过程中抛出异常会发生什么?批次会被遗忘吗?
  • 同样,如果函数服务或 CosmosDBTrigger 库在调用 Azure 函数之前存在运行时问题,是否可以在不跳过批处理或复制文档的情况下恢复?
  • 函数有没有办法上报完成状态,比如“未处理”;导致触发器重试批处理?
  • 是否存在相同或不同实例将多次处理同一文档的情况?(我读过几篇声称发生了这种情况的帖子。)

如果最终答案是这个触发器不可靠,只是好奇它的预期用例是什么?

谢谢

-约翰

0 投票
1 回答
480 浏览

azure-functions - 如何使用 Azure 函数 Cosmos DB 触发器捕获更改?

我有以下要求,我想从 cosmosDB 捕获记录并将其推送到博客存储。

我已经使用 azure 函数 cosmos DB 触发器解决了上述问题(它将捕获对记录在 cosmos DB 容器中所做的任何更改)。

如何捕获满载?

要求是我必须从 cosmos DB 容器中获取所有记录并将其推送到博客存储。

所以问题是 cosmosDB 触发器仅在记录有一些变化时才捕获,所以我如何才能实现这个满载。

对于满载,我还创建了一个 python 脚本。

参考:https ://github.com/Azure/azure-cosmos-python

参考脚本:如何使用 python 更新 Cosmos Db 中的记录?

所以实际上我的脚本正在执行它的所有记录,并且我正在为每个记录调用 ReplaceItem,但我观察到的是 azure 函数 cosmos DB 触发器不会捕获所有记录的更改,它只捕获很少的记录。

那么脚本有问题吗?

0 投票
2 回答
225 浏览

azure - 从 Azure Function 访问 CosmosDB(无输入绑定)

我在 CosmosDB 中有 2 个集合,Stocks并且StockPrices.

StockPrices收藏包含所有历史价格,并不断更新。

我想创建 Azure 函数来侦听StockPrices更新 ( CosmosDBTrigger),然后Document对触发器传递的每个执行以下操作:

  1. Stocks在集合中查找具有匹配代码的股票
  2. Stocks更新收藏中的股票价格

我不能通过CosmosDB输入绑定来执行此操作,因为CosmosDBTrigger传递了 a List(绑定仅在触发器传递单个项目时才有效)。

我看到这个工作的唯一方法是如果我foreachCosmosDBTriggerList 上,并从我的函数体访问 CosmosDB 并执行上面的步骤 1 和 2。

问题:如何从我的函数中访问 CosmosDB?

0 投票
1 回答
413 浏览

c# - Azure Cosmos Lease Container 只为整个容器创建一个租约,即使有数千个分区

我创建了一个使用 CosmosDBTrigger 来监视更改的 azure 函数。 Azure 函数设置

我很快将 120,000 个项目添加到容器中,并看到我的 azure 函数扩展到 20 个服务器,但几乎没有使用 CPU(除了一个) 20 台服务器,没有足够的 CPU

我检查了我的租赁容器,只有两个项目,一个是租约,一个是 .info 在此处输入图像描述

这是租用容器的设置 在此处输入图像描述

我正在收听的容器中的分区是“ClientOrderId”,因此每个订单都在其自己的分区中(重写入)。为什么我的租用容器不分发租约,以便我的 azure 功能可以并行运行?

提前致谢。