C# Azure函数Blob触发器重试计数

C# Azure函数Blob触发器重试计数,c#,azure,azure-functions,azure-storage-blobs,azure-blob-trigger,C#,Azure,Azure Functions,Azure Storage Blobs,Azure Blob Trigger,我遇到了这样一种情况:blob第一次可能无法处理,但可能会在后续执行中工作 我遇到的问题是监视真正的故障,此时第一个故障将引发异常,该异常将被记录并发出警报,但如果第一次重试成功完成,则根据先前的警报没有什么可做的 是否有办法查看已发生的重试次数,以便我只能在不再重试时发出警报?在blob触发器功能最后一次失败后,Azure应向名为webjobs blobtrigger poison的存储队列写入一条消息。您可以监视此存储队列中的新消息,作为在重试次数用尽后监视实际失败的一种方法 请参阅:您可以

我遇到了这样一种情况:blob第一次可能无法处理,但可能会在后续执行中工作

我遇到的问题是监视真正的故障,此时第一个故障将引发异常,该异常将被记录并发出警报,但如果第一次重试成功完成,则根据先前的警报没有什么可做的


是否有办法查看已发生的重试次数,以便我只能在不再重试时发出警报?

在blob触发器功能最后一次失败后,Azure应向名为
webjobs blobtrigger poison
的存储队列写入一条消息。您可以监视此存储队列中的新消息,作为在重试次数用尽后监视实际失败的一种方法


请参阅:

您可以更改函数处理程序以检索消息元数据,包括出列计数


话虽如此,您可能仍然希望使用毒药队列来处理失败的消息,就像Mike在回答中建议的那样。这取决于您的具体情况。

默认值为5,请尝试将
maxDequeueCount
设置为1。我希望重试,我只想在第5次失败时引发异常。您不能只跟踪获取blob文件的方法中的重试次数,然后在超过阈值时记录并发出警报?每次执行都会被触发并独立运行,因此我正在寻找一种方法来保持对blob进行了多少次尝试。BlobTrigger功能的另一种方法是使用Azure事件网格,该网格具有更可靠的事件传递处理、重试策略和死信,请参阅中的更多详细信息
[FunctionName("QueueTriggerMetadata")]
public static void Run([QueueTrigger("101functionsqueue", Connection = "AzureWebJobsStorage")]CloudQueueMessage myQueueItem, TraceWriter log)
{
    log.Info("101 Azure Function Demo - Retrieving Queue metadata");

    log.Info($"Queue ID: {myQueueItem.Id}");
    log.Info($"Queue Insertion Time: {myQueueItem.InsertionTime}");
    log.Info($"Queue Expiration Time: {myQueueItem.ExpirationTime}");
    log.Info($"Queue Payload: {myQueueItem.AsString}");

    log.Info($"Dequeue Count: {myQueueItem.DequeueCount }");
}