Cloud differences

This guide describes the key differences between the reference AWS implementation and other IoT implementations by different cloud providers.

Google Cloud Platform (GCP)

Authentication

Devices connect to the broker host using TLS 1.2, but authenticate against MQTT using a username (any) and a JWT token, signed with the device key. This means that you must provision the devices with the TLS Root Certificates and a device-specific keypair.

Digital twin

GCP has Configuration (AWS: desired) and State (AWS: reported).

Devices receive their configuration by subscribing to the /devices/${deviceId}/config topic. On successful subscription, the devices receive the configuration on this topic. If the configuration is changed, the updated configuration will be published to the topic. There is no delta.

Devices publish their state to /devices/${deviceId}/state topic. The devices must always publish the entire state. There is no native support for partial updates.

WebSockets

The IoT Core does not support WebSocket connection, which is used in the app to get notifications about changes on the device state in real time.

Microsoft Azure

Device Provisioning Service

Azure supports Just-in-Time Provisioning, but this process is not transparent to the device.