Hello @Yashasvi Sai Jagannath Kolachina,
welcome to this moderated Azure community forum.
The answer given by @AshokPeddakotla-MSFT is valid if you want to transfer messages from one IoT Hub to another one.
I want to propose a different strategy.
IoT Hubs are your gateways for incoming device-to-cloud messages. The only way to ingest telemetry is to create device clients and register each of them in an IoT Hub.
I propose to keep devices sending telemetry to multiple IoT Hub is multiple regions but to skip "connecting the IoT Hubs".
Just create a Stream Analytics Job in some subscription, in some region that is capable of ingesting telemetry from multiple IoT Hubs.
Each IoT Hub is registered as input.
The Azure portal does support adding IoT Hub from multiple subscription using the manual option:
You can also do this with the CLI:
az stream-analytics input create --properties "{"type":"Stream","datasource":{"type":"Microsoft.Devices/IotHubs","properties":{"consumerGroupName":"sdkconsumergroup","endpoint":"messages/events","iotHubNamespace":"iothub","sharedAccessPolicyKey":"sharedAccessPolicyKey=","sharedAccessPolicyName":"owner"}},"serialization":{"type":"Avro"}}" --input-name "input7970" --job-name "sj9742" --resource-group "sjrg3467"
Once messages are arriving from multiple IoT Hub inputs, use the UNION statement to combine the streams into one stream.
Examples can be found here.
Notice that each stream needs to expose the same set of columns so perhaps you need to rename iot hub input message properties.
welcome to this moderated Azure community forum.
This pattern is also useful for Azure IoT Hub failover situations.
If the response helped, do "Accept Answer". If it doesn't work, please let us know the progress. All community members with similar issues will benefit by doing so. Your contribution is highly appreciated.