An Azure service that enables bidirectional communication between internet of things (IoT) devices and applications.
There are several ways to communicate from an IoT device to the Cloud using Azure IoT Hub. You can send information as telemetry, or you can update a reported property in the device twin. You get an ACK that your message has been transferred. In the Cloud, you can route your message to several Azure resources such as a Service Bus Queue or an Event Hub, and you can trigger an Azure Function to start when such a message is received. You can also route a Twin Property changed in the same way. If you want to reply from the Cloud to your device, you can update a Desired Twin property or use a direct method call to the device. Updating a desired property is an asynchronous operation; hence, even if the device is offline, it gets the property value when the device reconnects. A direct method is a synchronous operation, a request-reply; hence you can call it from the Cloud and get an answer from the device.
You can always use other communication channels and mechanisms such as calling a REST API from the device or using a service such as SignalR. Still, I recommended the Azure IoT Hub as the management and communication mechanism.