David Gristwood's Blog

Azure, Azure, Azure

Moving to Azure IoT Hub

When Pete and I started building our “Band on the Run” project, we used Azure Event Hubs as the ingestion point for all the Microsoft Band telemetry. It’s a highly scalable ingress service that can handle millions of events per second, into which its easy to plug downstream components to process and store that data, so it was the ideal choice for the project.

Since then Azure has introduced a new piece of technology, Azure IoT Hub. It has the same downstream programming model that Azure Event Hubs has, built on consumer groups, etc, but has added device handling capabilities. When we were using Azure Event Hubs we had to create our own Service Bus Shared Access Signatures to enable the telemetry to be posted. Not only does Azure IoT Hub enable reliable and secure bidirectional communications between IoT devices, it handles the per-device security credentials and access control, so it was one less thing for us manage, so we switched over to using it.

image

As soon as you start programming against services like Azure IoT Hub, you want to make sure you have the right tools to help you test and debug your code. An old colleague of mine at Microsoft, Paulo Salvatori, has created one of the best tools I have used for working in these situations, the excellent Service Bus Explorer, which we used extensively on our Azure Event Hubs work.  So, you can image my disappointment when I tried using it against our new IoT Hub, and it didn’t work!

However, I dropped Paulo a line, and he pointed out that he had added Azure IoT Hub support for listening to messages – I just hadn’t spotted it. And I bet I am not alone in that, so here is where you find it:

image

The other tool you will want to check out when working with IoT Hub is the Azure IoT SDK Device Explorer, which can listen to messages and manage devices, etc:

image