For those working with Azure IoT Edge, the support for Azure IoT Edge modules is a well-known mechanism to deploy pieces of IoT logic to (edge) devices.
Every Azure IoT Edge module functions as a Docker container with an independent message flow, module twin, tags, desired properties, reported properties, and direct methods.
The modules are bound to the Azure IoT Edge device and rely on the security and communication channel provided by that device registration.
Azure IoT also supports the concept of Module Identities.
This ability is less known and used, which is a pity if you consider all the options it brings…
Module Identities are registered as part of any Azure IoT device. This can be an edge device but it also works for ‘generic’ Azure IoT devices.
Module Identities have their own credentials, something an Azure IoT Edge module does not have.
This way, Module Identities can send their own messages, have a module twin, and support direct methods.
Why should we use Module Identities?
If you consider your devices as being modular by design, with different parts of data collection, perhaps even by different manufacturers, you can separate concerns and security by giving each part its own module identity. It even fits well into Azure IoT Plug&Play.
Unfortunately, the Device Provisioning Service does not support Module Identities, only Device Identities. I expect this is why Module Identities never became as popular as it should be.
But this is not the end of the story…
Let’s see how we can work around this shortcoming.
Doorgaan met het lezen van “How to create Azure IoT Module Identities via DPS”