我遇到的情况是,Blob可能在第一次处理时失败,但可能在后续执行中工作。
我遇到的问题是关于监控真正的失败,目前第一次失败将抛出一个异常,该异常被记录并发出警报,但如果第一次重试成功完成,那么根据早期警报就没有什么可做的了。
是否有办法查看已发生的重试次数,以便我只能在不再重试时发出警报?
Blob 触发器函数最后一次失败后,Azure 应将消息写入名为 webjobs-blobtrigger-poison 的
存储队列。您可以监视此存储队列中的新消息,作为在重试次数用尽后监视实际故障的一种方式。
参见:https://docs . Microsoft . com/en-us/azure/azure-functions/functions-bindings-storage-blob-trigger?tabs = cs harp # poison-blob
您可以更改函数处理程序以检索消息元数据,包括取消排队计数。
从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 }");
}
话虽如此,您可能仍然希望使用毒药队列来处理失败的消息,就像Mike在他的答案中建议的那样。这取决于您的确切方案。
我是Azure Function应用程序中blob触发器的新手,需要一些帮助。我正在努力寻找有关如何重命名触发该函数的blob的资源。 我有一个函数应用程序,当一个新的blob被上传到容器时触发,文件被处理,我需要一种方法来将其“标记”为已处理,因此我想重命名blob。 这是我的职责: 我该如何重命名该文件?在这种情况下有可能吗?
我使用blob触发器读取blob内容,作为pandas DF进行处理,并将blob附加到我使用的Azure SQL server。 blob触发器没有按预期工作,因此我将main函数中的所有代码都定义为: 但是,我得到了以下错误: 有人可以帮助我找到此问题的原因吗? function.json的配置如下:
如果你使用blob存储触发器阅读Azure WebJobs上的留档,它们会提到这不是很可靠: WebJobs SDK扫描日志文件以查看新的或更改的blob。这个过程不是实时的;在创建blob后的几分钟或更长时间内,函数可能不会被触发。此外,存储日志是在“尽力而为”的基础上创建的;无法保证所有事件都将被捕获。在某些情况下,日志可能会丢失。如果您的应用程序无法接受blob触发器的速度和可靠性限制,建议
Azure函数存储帐户Blob容器触发器 在我们的一个用例中,我正在为具有以下条件的存储帐户容器中的任何活动寻找Azure函数触发器 < li >具有特定命名约定的容器(名称如xxxx-input) < li >它应该自动检测是否创建了新的容器(具有特定的命名约定) < li>
有没有人知道某种方法可以触发具有 Blob 触发器的 Azure 函数?无论是通过API还是使用“测试/运行”功能。 情况是,我需要在测试目的中这样做。目前我看到的是,可以在blob存储中提供要触发的文件的名称。但这是无用的,因为无论如何,将文件放在那里都会触发功能。我想做的是为文件的内容而不是名称提供功能,以避免不必要的操作。 不幸的是,微软在所有相关主题上的留档很差,但这个没有。在这个gith
我已经审阅了Microsoft提供的关于触发器的文档。[https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-blob-trigger?tabs=python][1] 事实上,在Azure函数中使用参数允许我们检索blob和一些属性(),我们还可以使用函数读取字节,但是我们如何将字节转换为