The idea here is to deploy iot-devices at scale using Azure Device Provisioning Service (DPS). The following topics are covered
- Individual Device Enrollments procedure with DPS.
- Group Device Enrollments procedures with DPS.
- Send telemetry data from provisioned iot devices to azure iot hub.
- Receieve telemetry data using built-in endpoint in iothub.
- Receieve telemetry data using custom endpoint (message routing).
Microsoft docs for details - https://docs.microsoft.com/en-us/azure/iot-hub/tutorial-x509-openssl
Find the demo client from Microsoft - https://github.com/MicrosoftLearning/MSLearnLabs-AZ-220-Microsoft-Azure-IoT-Developer/blob/master/Allfiles/Labs/06-Automatic%20Enrollment%20of%20Devices%20in%20DPS/Final/ContainerDevice/Program.cs
Minimul docs - https://github.com/dotnet/samples/blob/main/iot/dotnet-iot-and-nanoframework/create-certificate.md
- Create a root certificate using a root CA configuraiton file.
- Upload the certificate in DPS.
- Domonstrate proof of possession in DPS.
- Create a client device certificate using the same root CA configuration file.
Download the following files from https://github.com/Azure/azure-iot-sdk-c/tree/main/tools/CACertificates
- certGen.sh,
- openssl_root_ca.cnf,
- and openssl_device_intermediate_ca.cnf
Then follow - https://github.com/Azure/azure-iot-sdk-c/blob/main/tools/CACertificates/CACertificateOverview.md
todo.
I added a dummy temperature simulator built in .net core 3.1. Add properties in key value pair while sending the telemetry data. Add Message Routing rule in azure iot-hub according to those key value pair.
There are two functions apps
- Built-in-endpoint - Listening to default iot-hub.
- Blob-endpoint - Listening to blob storage for those messages that were routed to blob container.