Migrate IoT resources to global Azure

Important

Since August 2018, we have not been accepting new customers or deploying any new features and services into the original Microsoft Cloud Germany locations.

Based on the evolution in customers’ needs, we recently launched two new datacenter regions in Germany, offering customer data residency, full connectivity to Microsoft’s global cloud network, as well as market competitive pricing.

Additionally, on Sept 30th, 2020, we announced that the Microsoft Cloud Germany would be closing on October 29th, 2021. More details are available here: https://www.microsoft.com/cloud-platform/germany-cloud-regions.

Take advantage of the breadth of functionality, enterprise-grade security, and comprehensive features available in our new German datacenter regions by migrating today.

This article has information that can help you migrate Azure IoT resources from Azure Germany to global Azure.

Azure Cosmos DB

You can use Azure Cosmos DB Data Migration Tool to migrate data to Azure Cosmos DB. Azure Cosmos DB Data Migration Tool is an open-source solution that imports data to Azure Cosmos DB from different sources.

Azure Cosmos DB Data Migration Tool is available as a graphical interface tool or as command-line tool. The source code is available in the Azure Cosmos DB Data Migration Tool GitHub repository. A compiled version of the tool is available in the Microsoft Download Center.

To migrate Azure Cosmos DB resources, we recommend that you complete the following steps:

  1. Review application uptime requirements and account configurations to determine the best action plan.
  2. Clone the account configurations from Azure Germany to the new region by running the data migration tool.
  3. If using a maintenance window is possible, copy data from the source to the destination by running the data migration tool.
  4. If using a maintenance window isn't an option, copy data from the source to the destination by running the tool, and then complete these steps:
    1. Use a config-driven approach to make changes to read/write in an application.
    2. Complete a first-time sync.
    3. Set up an incremental sync and catch up with the change feed.
    4. Point reads to the new account and validate the application.
    5. Stop writes to the old account, validate that the change feed is caught up, and then point writes to the new account.
    6. Stop the tool and delete the old account.
  5. Run the tool to validate that data is consistent across old and new accounts.

For more information:

Functions

Migrating Azure Functions resources from Azure Germany to global Azure isn't supported at this time. We recommend that you export a Resource Manager template, change the location, and then redeploy to the target region.

Important

Change location, Azure Key Vault secrets, certificates, and other GUIDs to be consistent with the new region.

For more information:

Notification Hubs

To migrate settings from one instance of Azure Notification Hubs to another instance, export and then import all registration tokens and tags:

  1. Export the existing notification hub registrations to an Azure Blob storage container.
  2. Create a new notification hub in the target environment.
  3. Import your registration tokens from Blob storage to your new notification hub.

For more information:

IoT Hub

Although you can migrate Azure IoT Hub instances from Azure Germany to global Azure, the migration isn't seamless.

Note

This migration might cause downtime and data loss in your Azure IoT application. All telemetry messages, C2D commands, and job-related information (schedules and history) aren't migrated. You must reconfigure your devices and back-end applications to start using the new connection strings.

Step 1: Re-create the IoT hub

IoT Hub doesn't support cloning natively. However, you can use the Azure Resource Manager feature to export a resource group as a template to export your IoT Hub metadata. Configured routes and other IoT hub settings are included in the exported metadata. Then, redeploy the template in global Azure. You might find it easier to re-create the IoT hub in the Azure portal by looking at the details in the exported JSON.

Step 2: Migrate device identities

To migrate device identities:

  1. In the source tenant in Azure Germany, use the ExportDevices Resource Manager API to export all device identities, device twins, and module twins (including the keys) to a storage container. You can use a storage container in Azure Germany or global Azure. Make sure that the generated shared access signature URI has sufficient permissions.
  2. Run the ImportDevices Resource Manager API to import all device identities from the storage container to the cloned IoT hub in global Azure.
  3. Reconfigure your devices and back-end services to start using the new connection strings. The host name changes from *.azure-devices.de to *.azure-devices.com.

Note

The root certificate authority is different in Azure Germany and global Azure. Account for this when you reconfigure your devices and back-end applications that interact with the IoT Hub instance.

For more information:

Next steps

Learn about tools, techniques, and recommendations for migrating resources in the following service categories: