未为 azure 队列触发函数失败创建 Azure 毒物队列

问题描述

我正在使用 powershell 为 azure 活动进行一些自动化工作,作为其中的一部分,我们正在使用 queuetrigger 函数。但是每当发生错误时,这些消息的中毒队列就不会创建。我们能够使用 try catch 块在 app-insights 中记录错误,但我们无法看到这些消息的中毒队列创建

解决方法

按照以下步骤操作,看看您是否遗漏了什么。

  • 创建一个队列消息处理程序

    enter image description here

    如果您由于某种原因未能正确处理消息(读取 - 您在处理过程中抛出异常),运行时将决定在某个时候将您的消息移动到有害队列。您可以阅读有关此机制的更多信息 here。您当然也可以在此处执行 try\catch 选项,但问题是您究竟要在 catch 内做什么以稍后重试?最好的选择是让异常飞到运行时并在下一轮委托出队。

  • 当您无法正确处理消息时(甚至有一个阈值,运行时将重试多少次,在移动到有害队列之前为您提供消息进行处理):

    enter image description here

请注意:毒药队列为 {your-queue-name}-poison。 Blob 存储不应有任何权限 (RBAC) 限制。如果有,请给您的函数应用适当的权限。

附加信息:如果您想处理有害消息,您可以通过此分步指南:Capture Exception in Azure Functions Poison Queue Trigger