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.