查看Azure服务总线死信的申请

Application for viewing Azure service bus dead letters

我一直在网上和 GitHub 寻找 Azure 服务总线的现成死信查看器。这是为了让我们的 DevOps 团队能够监控、查看和报告我们总线上每个主题的每个订阅的任何死信。

我认为这将是分发给 DevOps 的常见应用程序,所以相信已经有一个应用程序了。因此,在我开始扮演我自己的 windows 表单应用程序之前,是否有我可能错过的现有查看器?

经过一些有创意的搜索,我找到了 Paolo Salvatori 的项目 "Service Bus Explorer",它完全符合我的需要。我希望这能帮助其他搜索相同内容的人。

可以在 Microsoft Azure 和示例代码下的 code.msdn.microsoft.com 网站上找到它。

https://code.msdn.microsoft.com/windowsazure/Service-Bus-Explorer-f2abca5a

“一个简单的控制台应用程序可以帮助您实现查看服务总线队列或主题订阅中的死信消息的目标。您唯一需要做的就是接收来自死信的消息peeklock 模式下的队列或主题订阅的字母路径并显示所需的消息详细信息。

这是一个简单的控制台应用代码,用于显示死信消息。

using System;
using System.Threading.Tasks;
using Microsoft.ServiceBus.Messaging;

namespace DeadLetterQueue
{
    class Program
    {
        /*Supply the connection string of your Service Bus Namespace here*/
        const string connectionString = "connection string of your Service Bus Namespace";
        /*Supply the Name of your Service Bus Entity */
        const string entityName = "Entity Name";
        /*Supply the Number of deadletter messages you need to retrieve from your Entity here*/
        const int numberOfMessages = 5;
        static void Main(string[] args)
        {
            ViewDeadLetterMessages().GetAwaiter().GetResult();
            Console.ReadKey();
        }
        static async Task ViewDeadLetterMessages()
        {
              MessagingFactory messageFactory = MessagingFactory.CreateFromConnectionString(connectionString);
              Console.WriteLine(""DeadLetter Messages of {0}"", entityName);
              //Getting the deadletter path of the Service Bus Entity
              string _path = QueueClient.FormatDeadLetterPath(queueName);
              for (int i = 0; i < numberOfMessages; i++)
              {
                    var queueClient = await messageFactory.CreateMessageReceiverAsync(_path, ReceiveMode.PeekLock);
                    BrokeredMessage _message = await queueClient.ReceiveAsync();
                    Console.WriteLine(""MessageId Message {0} - {1} "", i, _message.MessageId);
                    _message.Complete();
                    _message.Abandon();
              }
          }          
     }
}

虽然 "Service Bus Explorer" by Paolo Salvatori 是一个很棒的 UI 工具,用于管理消息传递实体并与之交互,但 send/receive/peek 等基本操作现在可以直接从 Azure 门户本身处理。

A​​zure 门户现在提供 service bus explorer (preview) tool to perform basic operations (such as Send, Receive, Peek) on Queues/Topics and their dead-letter subentities, right from the portal itself. Check this link on detailed instructions about using this tool - azure-service-bus-message-explorer

另请参考我对How to peek the deadletter messages

的回答