Согласно этому Служебная шина doc поддерживает два режима получения и удаления и блокировки просмотра.
При использовании режима Peek-Lock, если потребитель вылетает / зависает / выполняет очень долгую сборку мусора сразу после обработки сообщения, но до того, как messageId станет «Completed» и истечет время видимости, есть вероятность, что одно и то же сообщение будет доставлено дважды.
Тогда как Microsoft утверждает, что служебная шина поддерживает режим доставки не более одного раза. Это из-за режима получения и удаления, который отправляет сообщения только один раз, но опять же, если что-то происходит, пока потребители обрабатывают сообщение, эта ценная информация теряется.
Если да, то как лучше всего обеспечить точную однократную доставку с использованием шины служб Azure в качестве очереди и функций Azure в качестве потребителей.
P.S. Единственный подход, о котором я могу думать, - это хранение MessageID в blob, но поскольку в моем случае количество MessageID может быть очень большим, хранение и загрузка всех из них - неправильный подход.