Azure Functions with Azure IoT Hub

I really like Azure Functions. I love the idea that you can write pure code that sits in the cloud and just runs. Sometimes all you want is a thing that takes in some data, does something with it, and spits it out somewhere else. You don’t want to build and manage a server, set programs to run on startup, bind them to events and so on and so on. You just want a piece of code with a name and an address.

I’ve been using Azure Functions to capture MQTT messages and store their payload data. This turns out to be extremely easy to do, until you deploy your function in the cloud. Then it stops working. And you scratch your head and wonder what stupid thing you’ve done. You scratch your head, turn on lots of tracing and eventually find that the function is failing on load.

It turns out that one of the configuration items, the connection string to the IoT Hub that the program is using, is not passed over to the settings in the cloud app. You have to manually create the setting for the application and then set it to the required value. Then it all works. Wonderful.