In my previous post we've seen how to detect the actual Azure Region where a specific Dataverse instance is physically located, and we briefly explained the difference between Dataverse location and Azure region.
This knowledge is useful in at least 2 scenarios:
- When you need to create an Azure Synapse / Fabric link from your Dataverse environment
- When you want to deploy and configure Microsoft Connected Field Service solution integrated with IoT hub
⚠️ If your environment location doesn't matches the azure region of the external services you want to connect with, the only possible solution is to ask Microsoft to move your environment via service request.
Please note: I'm not talking about Geo-to-geo migrations. Geo-to-geo migrations means to move an environment between locations. In this scenario we need to move an existing environment between regions belonging to the same location: for instance, from
northeurope
towesteurope
.
🤔 But what if you want to plan in advance where your Dataverse environment will be created?
You can do it with a simple trick.
Instead of relying on the standard UI provided via Power Platform Admin Center.
You can leverage a simple PowerShell command to create from the beginning your Dataverse environment in your favorite Azure Region.
You just need to open a PowerShell window, then import Microsoft.PowerApps.Administration.PowerShell
PowerShell Module
if (-not (Get-Module -ListAvailable -Name Microsoft.PowerApps.Administration.PowerShell)) {
Install-Module -Name Microsoft.PowerApps.Administration.PowerShell -Force -Scope CurrentUser
}
Import-Module Microsoft.PowerApps.Administration.PowerShell
Once done, simply type:
$displayName = "Environment Display Name"
$location = "Location taken from the screenshot above"
$region = "Azure region taken from the screenshot above"
$sku = "Sandbox" # Trial, Sandbox, Production, SubscriptionBasedTrial, Teams, or Developer
$currency = "EUR" # abbreviated currency name
$lcid = 1033 # lcid of the base language of your choice
New-AdminPowerAppEnvironment -DisplayName $displayName -LocationName $location -RegionName $region -EnvironmentSku $sku -CurrencyName -LanguageName $lcid -ProvisionDatabase
And your environment will be created directly in the azure region of your interest.
Please note that, as stated by Chris Plasecki:
[...] it's not broadly advertised by Microsoft in order to have more predictability around data center resource management and disaster recovery. Not all regions have the same number of availability zones and some are meant to be the secondary (failover) zone, so keep that in mind and check into whether a particular Azure region has all the same services/resources available and thay you don't run into limitations.