当 azure 函数从队列中拉出消息后抛出异常时会发生什么?

What happens when an azure function throws an exception after it pulled a message off a queue?

AWS 的 SQS 有一个概念,你必须在队列消息完全从队列中删除之前明确地说你已经成功处理了队列消息(我相信它只是 "hidden" 一段时间,然后如果您没有将其标记为已成功处理,请返回)。

当从存储队列中拉出消息并且在执行 azure 函数期间抛出异常时,azure 函数如何表现?消息是否再次出现在队列中?

据我所知,消息将再次出现在队列中。运行时仅在您的函数成功处理队列消息时删除队列消息。

这里有一个类似的问题,你可以参考

When the message is dequeued and passed to your function, it becomes invisible for a period of time (10 minutes). While your function is running this invisibility is maintained. If your function fails, the message is not deleted - it remains in the queue in an invisible state. After the visibilty timeout expires, the message will become visible in the queue again for reprocessing.

正如Joy所说,消息被返回到队列中再次处理。一个关键考虑因素是,在五次尝试处理消息失败后,消息将被移至毒物队列。

https://docs.microsoft.com/en-us/sandbox/functions-recipes/queue-storage#poison-queue-messages-with-azure-storage-queue-triggers