Migrate · How-to
From AWS IoT Core
Export things, certificates, policies and shadows, import them, and point devices and backends at IoT Core.
Updated 11 Nov 20262 min read
All ThingsX IoT Core pages
- What ThingsX IoT Core does
- Quick start: connect your first device
- Key concepts
- Security and access
- Connect Wi-Fi and IoT devices
- BLE gateways, shelf labels and child devices
- LoRaWAN sensors and gateways
- Industrial I/O modules
- Device twins and state
- Send commands to devices
- Rules: react to device messages
- SDK and REST API
- Monitor your fleet and support customers
- Moving from another IoT platform
- From AWS IoT Core
- From Azure IoT Hub and other platforms
- Device can't connect
- Devices keep disconnecting or reconnecting
- Data isn't arriving or a rule doesn't fire
- Frequently asked questions
- Topics and limits reference
Moving from AWS IoT Core needs the fewest changes: policy JSON imports as it is, shadow topics keep working, and devices keep their AWS-issued certificates.
- 1Exportread-only, from your AWS account
- 2Importdry run, then import
- 3Point devicesnew endpoint and root CA
- 4Switch backendsSDK import change
- 5Re-create rulestest each on the bench
1. Export (read-only)
We give you a small export script. It reads thing types, things, policies, certificates (PEM, status and attachments) and, optionally, shadows using read-only AWS credentials, and writes one JSON file. Nothing in AWS is changed.
2. Import, dry run first
Upload the file in the console under Migrate, or post it to /v1/migrate/aws/import. The dry run lists what will be created and anything that needs attention. Then import for real.
- Certificates are pinned by fingerprint, so the device certificates work unchanged.
- Policies import as they are; AWS account prefixes in resource names are ignored and policy variables work.
3. Point the devices
Change the endpoint to <your-endpoint>:8883 and the server root CA to the one from your workspace (or use a server certificate from a public CA your devices already trust). Client ID, key, certificate and topics stay the same. $aws/things/<name>/shadow/... topics are answered by IoT Core twins.
4. Switch backends
# import boto3
# iot, data = boto3.client("iot"), boto3.client("iot-data")
import tic_sdk
iot, data = tic_sdk.client("iot"), tic_sdk.client("iot-data")
The common thing, certificate, policy, attachment, publish and shadow calls are supported with the same names and arguments. Errors carry a botocore-like response.
5. Rules
IoT SQL maps closely: SELECT … FROM 'topic/+' WHERE … with topic(n), clientid() and timestamp(). Lambda actions become HTTP actions to your service; SQS and Kinesis become queue actions. Test each rule on the bench before saving.
| AWS | ThingsX IoT Core |
|---|---|
| Device Shadow | Twin (shadow topics also work) |
| Jobs (simple) | Commands with acknowledgement |
| Fleet Indexing | Thing search |
| Device Defender, CloudWatch logs | Event log, timeline and Diagnose |
| Custom authorizer (username and password) | Built-in password credentials |
Was this page helpful?
Can't find what you need? Contact support or read about ThingsX IoT Core.