我可以配置 azure 功能来查看和读取服务总线队列中的消息但不删除它吗?

Rag*_*ghu 5 azure azure-functions

每个Azure Functions 服务总线绑定

触发行为

...

PeekLock 行为 - Functions 运行时在 PeekLock 模式下接收消息,如果函数成功完成,则对消息调用 Complete,如果函数失败,则调用 Abandon。如果函数运行时间超过 PeekLock 超时,则锁会自动更新。

我假设当 azure 函数对消息调用 Complete 时,它​​将从队列中删除。

如果我想让我的函数监视消息但从不删除它,我应该在我的函数中做什么?

Sea*_*man 5

消息处理失败导致函数抛出异常或对消息进行显式放弃操作将不会完成消息。

话虽如此,我发现这种方法存在问题。您并没有真正“监视”消息,而是主动处理这些消息。这意味着给定的消息将被重新传递并最终进入死信队列。如果您想窥探,您应该查看消息,但 Azure 服务总线触发器不会这样做。

如果您需要一个窃听实现,使用一个主题并拥有 2 个订阅可能不是一个坏主意,一个用于使用消息,另一个用于复制您的窃听功能的所有消息(这可能会进行某种分析或记录) . 在不了解您所做工作的全部范围的情况下,很难提供答案。