下面是Cosmos数据库更改提要触发器azure函数的应用程序洞察记录的异常:
Cosmos数据库更改提要触发Azure功能:
public static class NotificationChangeFeed
{
[FunctionName(nameof(NotificationChangeFeed))]
public static async Task Run([CosmosDBTrigger(
databaseName: CosmosDBConstants.DataBaseName,
collectionName: CosmosDBConstants.NotificationContainer,
ConnectionStringSetting = CosmosDBConstants.ConnectionStringName,
CreateLeaseCollectionIfNotExists = true,
LeaseCollectionName = CosmosDBConstants.LeaseConainer)]IReadOnlyList<Document> input,
[Inject] ILoggingService loggingService,
[Inject] IEmailProcessor emailProcessor)
{
var logger = new Logger(loggingService);
try
{
if (input != null && input.Count > 0)
{
foreach (Document document in input)
{
string requestBody = document.ToString();
var notification = requestBody.AsPoco<Notification>();
await emailProcessor.HandleEmailAsync(notification, logger);
logger.Info($"Email Notification sent successfully for file name: {document.Id}");
}
}
}
catch (Exception ex)
{
logger.Error($"Unable to process Documents for Email Notification for Files: {input?.Count}", ex,
nameof(NotificationChangeFeed));
throw;
}
}
}
此错误意味着租约丢失,这通常在它被其他主机占用时发生。其他情况:通信失败、达到重试次数、未找到租约。
检查点
实现(如果您使用的是手动检查点
)。我正在编写一些代码,使用Cosmos作为我的存储来实现事件源。我的初始文档成功写入集合。然后,我设置了一个Azure函数,该函数在该集合的提要发生变化时触发,并将项目复制到另一个集合。 我的问题是,虽然如果我在本地调试函数应用程序,这一切都可以正常工作(更改通过并无问题地处理),但函数在作为函数应用程序发布后不会触发。该函数存在,但总执行计数始终为0。就像该函数没有在计时器上运行并检查提要。我的函
我最近开始使用Azure CosmosDB和函数。在阅读文档 https://docs.microsoft.com/pl-pl/azure/cosmos-db/change-feed-processor 时,我发现了一些对我来说很难理解的东西。是否真的可以在许多函数之间共享更改源,以便它们将由一个相同的数据库操作触发?什么是租约收集,它解决了什么问题。租赁的目的是什么?我想对这些术语进行基本解释。
我们正在使用Cosmos DB更改提要来解决我们的一些需求。想了解是否有任何重试机制在更改提要可用。例如,如果我得到一批10个文件,第三个由于某种原因无法处理,我是否可以只重放第三个消息? 有三种消耗更改提要的方式:
我有以下要求,我想从cosmosDB捕获记录,并将其推送到博客存储。 我已经用azure函数cosmos DB trigger解决了上面的问题(它将捕获对cosmos DB容器中的记录所做的任何更改)。 如何捕捉满负荷? 要求是我必须从cosmos DB容器中获取所有记录并将其推送到博客存储。 所以问题是cosmosDB触发器只有在记录有一定变化时才捕获,那么我该如何实现这个满载。 对于满载,我还
我只需要在更新容器中的所有4行时运行函数。我还没有在网上找到任何关于这是否可能的信息。如果你能告诉我这是否可能,如果可能的话,怎么做,那就太好了。
因此function.json如下所示: javascript中的http触发器在函数中的作用如下:,但是绑定到输入会导致错误,“property not defined”,那么如何在同一个函数中使用http触发器输入从json数据包中获取一个值来查询第一个输入中的cosmos db呢?