【问题标题】:Azure poison queue not being created for azure queue trigger functions failure未为 Azure 队列触发功能失败创建 Azure 毒物队列
【发布时间】:2021-02-22 21:49:43
【问题描述】:

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

【问题讨论】:

  • 您在处理 catch 块中的错误吗?还是从 catch 再次抛出导致功能失败?
  • 我们正在捕获 catch 块中的错误并登录到 App-insights,如果这是您认为我尝试通过删除 try catch 块但没有用的问题
  • 你应该让函数失败,只有当它用尽重试时它才会被移动到毒队列并且它总是失败。因此,默认情况下,当函数在主队列中的同一条记录连续 5 次失败时,它会被移动到毒队列
  • 能否请您发布错误消息?
  • 我删除了 try catch 块,它在 azure 日志中显示错误,但我看不到毒队列

标签: azure azure-devops azure-functions azure-powershell poison-queue


【解决方案1】:

按照以下步骤,看看你是否错过了什么。

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

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

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

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

附加信息:如果你想处理有毒邮件,你可以通过这个分步指南:Capture Exception in Azure Functions Poison Queue Trigger

【讨论】:

    猜你喜欢
    • 2015-12-21
    • 2019-03-26
    • 2021-02-08
    • 2018-03-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-12
    • 1970-01-01
    • 2017-09-14
    相关资源
    最近更新 更多