So the next Microsoft exam in your sights is AZ-220? Me to! I was fortunate enough to sit this exam in April 2021 just before the skills measured changed, so this article is based on the exam I sat. You may want to have a look at the exam skills measured to see what has changed if you are sitting this exam post 23/04/21…. https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4nBeC
This is a wonderful Speciality exam covering all things Azure IoT focussed.
I made this blog post as I was studying toward the exam to contain links to all the resources I utilised during this time. I hope you find this useful to aid your studies!
Exam Skills Measured
Implement the IoT Solution Infrastructure (15-20%)
Create and configure an IoT Hub
Peter Gallagher’s Pluralsight Course covering this module: https://app.pluralsight.com/library/courses/microsoft-azure-iot-developer-create-configure-iot-hub/table-of-contents
- create an IoT Hub
- https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-create-through-portal
- register a device
- https://docs.microsoft.com/en-us/azure/iot-edge/how-to-register-device?view=iotedge-2018-06&tabs=azure-portal
- configure a device twin
- https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-device-twins
- configure IoT Hub tier and scaling
- https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-scaling
Build device messaging and communication
Peter Gallagher’s Pluralsight Course covering this module:
- build messaging solutions by using SDKs (device and service)
- https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-sdks
- implement device-to-cloud communication
- https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-d2c-guidance
- implement cloud-to-device communication
- https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-c2d-guidance
- configure file upload for devices
- https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-file-upload
- Use the Azure portal to configure file upload | Microsoft Docs
- connect to IoT Hub using TLS server certificates
- https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-x509ca-overview
Configure physical IoT devices
Peter Gallagher’s Pluralsight Course covering this module:
- recommend an appropriate protocol based on device specifications
- https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-protocols
- configure device networking, topology, and connectivity
- https://docs.microsoft.com/en-us/azure/iot-hub/tutorial-device-twins
Provision and manage devices (20-25%)
Jurgen Kevelaersr’s Pluralsight Course covering this module:
Implement the Device Provisioning Service (DPS)
- create a Device Provisioning Service
- https://docs.microsoft.com/en-us/azure/iot-dps/quick-setup-auto-provision
- create a new enrolment in DPS
- https://docs.microsoft.com/en-us/azure/iot-dps/how-to-manage-enrollments
- manage allocation policies by using Azure Functions
- https://docs.microsoft.com/en-us/azure/iot-dps/how-to-use-custom-allocation-policies
- link an IoT Hub to the DPS
- https://docs.microsoft.com/en-us/azure/iot-dps/quick-setup-auto-provision#link-the-iot-hub-and-your-device-provisioning-service
Manage the device lifecycle
Jurgen Kevelaersr’s Pluralsight Course covering this module:
https://app.pluralsight.com/library/courses/microsoft-azure-iot-developer-manage-device-lifecycles
- provision a device by using DPS
- https://docs.microsoft.com/en-us/azure/iot-dps/how-to-reprovision
- deprovision an autoenrollment
- https://docs.microsoft.com/en-us/azure/iot-dps/how-to-unprovision-devices
- decommission (disenroll) a device
- https://docs.microsoft.com/en-us/azure/iot-dps/how-to-revoke-device-access-portal
Manage IoT devices by using IoT Hub
Jurgen Kevelaersr’s Pluralsight Course covering this module:
https://app.pluralsight.com/library/courses/microsoft-azure-iot-developer-manage-iot-devices-iot-hub
- manage devices list in the IoT Hub device registry
- https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-device-management-overview
- modify device twin tags and properties
- https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-device-twins
- trigger an action on a set of devices by using IoT Hub Jobs and Direct Methods
- Understand Azure IoT Hub direct methods | Microsoft Docs
- set up Automatic Device Management of IoT devices at scale
- Automatic device management at scale with Azure IoT Hub | Microsoft Docs
Build a solution by using IoT Central
- define a device type in Azure IoT Central
- Define a new IoT device type in Azure IoT Central | Microsoft Docs
- configure rules and actions in Azure IoT Central
- Configure rules and actions in Azure IoT Central | Microsoft Docs
- define the operator view
- Tutorial – Customize the operator dashboard in Azure IoT Central | Microsoft Docs
- add and manage devices from IoT Central
- Manage the devices in your Azure IoT Central application | Microsoft Docs
- monitor devices
- Quickstart – Monitor your devices in Azure IoT Central | Microsoft Docs
- custom and industry-focused application templates
- What are application templates in Azure IoT Central | Microsoft Docs
- monitor application health using metrics
- Monitor the health of an Azure IoT Central application | Microsoft Docs
- run IoT Central jobs
- Create and run jobs in your Azure IoT Central application | Microsoft Docs
Implement Edge (15-20%)
Microsoft Learn – Introduction to Azure IoT Edge: https://docs.microsoft.com/en-us/learn/modules/introduction-iot-edge/
Set up and deploy an IoT Edge device
Reza Salehi’s Pluralsight Course covering this module:
- create a device identity in IoT Hub
- Register a new device – Azure IoT Edge | Microsoft Docs
- deploy a single iot device to IoT Edge
- Install Azure IoT Edge | Microsoft Docs
- create a deployment for IoT Edge devices
- Deploy modules at scale in Azure portal – Azure IoT Edge | Microsoft Docs
- install container runtime on iot devices
- Install Azure IoT Edge for Windows | Microsoft Docs
- define and implement deployment manifest
- Deploy module & routes with deployment manifests – Azure IoT Edge | Microsoft Docs
- update security daemon and runtime
- Update IoT Edge version on devices – Azure IoT Edge | Microsoft Docs
- provision IoT Edge devices with DPS
- Provision device using symmetric key attestation – Azure IoT Edge | Microsoft Docs
- IoT Edge automatic deployments
- Automatic deployment for device groups – Azure IoT Edge | Microsoft Docs
- deploy on constrained devices
- Prepare to deploy your solution in production – Azure IoT Edge | Microsoft Docs
- secure IoT Edge solutions
- Security framework – Azure IoT Edge | Microsoft Docs
- deploy production certificates
- Manage device certificates – Azure IoT Edge | Microsoft Docs
Develop modules
Reza Salehi’s Pluralsight Course covering this module:
https://app.pluralsight.com/library/courses/microsoft-azure-iot-developer-develop-iot-edge-modules
- create and configure an Edge module
- Tutorial: Create and deploy custom modules – Machine Learning on Azure IoT Edge | Microsoft Docs
- deploy a module to an Edge device
- Deploy a pre-built module to the Edge device – Learn | Microsoft Docs
- publish an IoT Edge module to an Azure Container Registry
- Create IoT Hub & Edge Device
- Create Azure Container Registry
- debug Edge modules in development environment
- Develop and debug modules for Azure IoT Edge | Microsoft Docs
Configure an IoT Edge device
Reza Salehi’s Pluralsight Course covering this module:
https://app.pluralsight.com/library/courses/microsoft-azure-iot-developer-configure-iot-edge-devices
- select and deploy an appropriate gateway pattern
- Gateways for downstream devices – Azure IoT Edge | Microsoft Docs
- implement Industrial IoT solutions with modules like Modbus and OPC
- Azure/iot-edge-modbus: Modbus protocol module for use with the Azure IoT Edge (github.com)
- implement module-to-module communication
- Develop modules for Azure IoT Edge | Microsoft Docs
- implement and configure offline support (including local storage)
- Operate devices offline – Azure IoT Edge | Microsoft Docs
Process and manage data (15-20%)
Configure routing in Azure IoT Hub
Jurgen Kevelaersr’s Pluralsight Course covering this module:
- implement message enrichment in IoT Hub
- Tutorial – Use Azure IoT Hub message enrichments | Microsoft Docs
- configure routing of IoT Device messages to endpoints
- Tutorial – Configure message routing for Azure IoT Hub using Azure CLI | Microsoft Docs
- define and test routing queries
- Understand Azure IoT Hub message routing | Microsoft Docs
- integrate with Event Grid
- Event driven architectures on edge — Azure Event Grid on IoT Edge – Azure Event Grid | Microsoft Docs
Configure stream processing
Jurgen Kevelaersr’s Pluralsight Course covering this module:
- create ASA for data and stream processing of IoT data
- Azure Stream Analytics on IoT Edge | Microsoft Docs
- process and filter IoT data by using Azure Functions
- Processing data from IoT Hub with Azure Functions – Code Samples | Microsoft Docs
- configure Stream Analytics outputs
- Outputs from Azure Stream Analytics | Microsoft Docs
- create Stream Analytics Edge module
- Tutorial – Stream Analytics at the edge using Azure IoT Edge | Microsoft Docs
Configure an IoT solution for Time Series Insights (TSI)
Jurgen Kevelaersr’s Pluralsight Course covering this module:
- implement solutions to handle telemetry and time-stamped data
- Azure Time Series Insights Documentation – Quickstarts, Tutorials, API Reference | Microsoft Docs
- create an Azure Time Series Insights (TSI) environment
- Tutorial: Set up a Gen2 environment – Azure Time Series Insights Gen2 | Microsoft Docs
- connect the IoT Hub and the Time Series Insights (TSI)
- How to add an IoT hub event source – Azure Time Series Insights | Microsoft Docs
Monitor, troubleshoot, and optimize IoT solutions (15-20%)
Configure health monitoring
Peter Gallagher’s Pluralsight Course covering this module:
- configure metrics in IoT Hub
- Tutorial – Set up and use metrics and logs with an Azure IoT hub | Microsoft Docs
- set up diagnostics logs for Azure IoT Hub
- Tutorial – Set up and use metrics and logs with an Azure IoT hub | Microsoft Docs
- query and visualize tracing by using Azure Monitor
- Monitoring Azure IoT Hub | Microsoft Docs
- use Azure Policy definitions for IoT Hub
- Azure Policy Regulatory Compliance controls for Azure IoT Hub | Microsoft Docs
Troubleshoot device communication
Peter Gallagher’s Pluralsight Course covering this module:
- establish maintenance communication
- Predictive Maintenance for Industrial IoT – Azure Solution Ideas | Microsoft Docs
- verify device telemetry is received by IoT Hub
- Process real-time vehicle data using IoT – Azure Example Scenarios | Microsoft Docs
- validate device twin properties, tags and direct methods
- Understand Azure IoT Hub device twins | Microsoft Docs
- troubleshoot device disconnects and connects
- Monitor and troubleshoot disconnects with Azure IoT Hub | Microsoft Docs
Perform end-to-end solution testing and diagnostics
- estimate the capacity required for each service in the solution
- Understand Azure IoT Hub quotas and throttling | Microsoft Docs
- conduct performance and stress testing
- IoT Hub throttling and you | Azure blog and updates | Microsoft Azure
Implement security (15-20%)
Implement device authentication in the IoT Hub
James Millar’s Pluralsight Course covering this module:
- choose an appropriate form of authentication
- Understand Azure IoT Hub security | Microsoft Docs
- manage the X.509 certificates for a device
- Overview of Azure IoT Hub X.509 CA security | Microsoft Docs
- manage the symmetric keys for a device
- Security for Internet of Things (IoT) from the ground up | Microsoft Docs
Implement device security by using DPS
James Millar’s Pluralsight Course covering this module:
- configure different attestation mechanisms with DPS
- Quickstart – Set up IoT Hub Device Provisioning Service in the Azure portal | Microsoft Docs
- generate and manage x.509 certificates for IoT Devices
- Tutorial – Provision X.509 devices to Azure IoT Hub using a custom Hardware Security Module (HSM) | Microsoft Docs
- configure enrolment with x.509 certificates
- Tutorial – Provision X.509 devices to Azure IoT Hub using a custom Hardware Security Module (HSM) | Microsoft Docs
- generate a TPM endorsements key for a device
- Device provisioning: Identity attestation with TPM | Azure blog and updates | Microsoft Azure
- configure enrolment with symmetric keys
- Provision devices using symmetric keys – Azure IoT Hub Device Provisioning Service | Microsoft Docs
Implement Azure Defender for IoT
James Millar’s Pluralsight Course covering this module:
- enable Azure Defender for IoT in Azure IoT Hub
- Defender for IoT installation – Azure Defender for IoT | Microsoft Docs
- create security modules
- Quickstart: Create a security module twin – Azure Defender for IoT | Microsoft Docs
- configure custom alerts
- Custom security alerts for IoT Hub – Azure Defender for IoT | Microsoft Docs
Other Useful Links
Channel 9 Series IoT 101: https://channel9.msdn.com/Series/IoT-101/?WT.mc_id=EducationalIoT-c9-niner
GitHub Dotnet IoT Repository: https://github.com/dotnet/iot
I spent a fair amount of time working with an Nvidia Jetson Nano device and working through Paul DeCarlo’s amazing Git Repo….. I can highly recommend this as an option to really get hands on:
I also invested in an Azure Dev Kit – MXCHIP that helped cement some ideas. Of course you don’t need to use a hardware sensor, you can use the simulated devices if you like.
Summary
This exam offer a rich a varied set of skills and processes that you can learn, don’t be afraid to roll up your sleeves and work through the MS Learn Modules as well as trying to develop your own little solutions. I have immense fun with a Raspberry Pi and some IoT Sensors and 3d Printed devices as part of this journey. Inspired by the amazing Peter Gallagher, Cliff Agius and Paul DeCarlo to call out some amazing people who are always willing to help.
You can catch both Pete and Cliff on their IoTeaLive Twitch live stream every week on the AzureishLive Channel www.twitch.tv/azureishlive where they regularly have chats around the latest endeavours in the wonderful world of IoT or they invite amazing guests on and work through solutions! Either way I would encourage you to follow the channel and get involved as the guys are immense and always willing to help!
Now I have passed this exam I have no trouble in offering any support I can to anyone wishing to jump on this incredible learning Journey. Feel free to reach out!
This isn’t the end of the journey for me, its just the beginning!!! Enjoy and Good Luck!!!!