Skip to content

Commit 6531a52

Browse files
authored
Merge pull request #105535 from cephalin/move
move region doc
2 parents f46ff63 + b04fcd2 commit 6531a52

File tree

2 files changed

+115
-2
lines changed

2 files changed

+115
-2
lines changed
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
---
2+
title: Move an app to another region
3+
description: Learn how to move App Service resources from one region to another.
4+
5+
ms.topic: how-to
6+
ms.date: 02/27/2020
7+
ms.custom: subject-moving-resources
8+
9+
#Customer intent: As an Azure service administrator, I want to move my App Service resources to another Azure region.
10+
---
11+
12+
# Move an App Service app to another region
13+
14+
This article describes how to move App Service resources to a different Azure region. You might move your resources to another region for a number of reasons. For example, to take advantage of a new Azure region, to deploy features or services available in specific regions only, to meet internal policy and governance requirements, or in response to capacity planning requirements.
15+
16+
App Service resources are region-specific and can't be moved across regions. You must create a copy of your existing App Service resources in the target region, move your content over to the new app. If your source app uses a custom domain, you can [migrate it to the new app in the target region](manage-custom-dns-migrate-domain.md) when you're finished.
17+
18+
To make copying your app easier, you can [clone an individual App Service app](app-service-web-app-cloning.md) into an App Service plan in another region, but it does have [limitations](app-service-web-app-cloning.md#current-restrictions), especially that it doesn't support Linux apps.
19+
20+
## Prerequisites
21+
22+
- Make sure that the App Service app is in the Azure region from which you want to move.
23+
- Make sure that the target region supports App Service and any related service, whose resources you want to move.
24+
<!-- - Domain bindings, certificates, and managed identities can't replicated using the **Export template** method. You must create them manually. -->
25+
26+
## Prepare
27+
28+
Identify all the App Service resources that you're currently using. For example:
29+
30+
- App Service apps
31+
- [App Service plans](overview-hosting-plans.md)
32+
- [Deployment slots](deploy-staging-slots.md)
33+
- [Custom domains purchased in Azure](manage-custom-dns-buy-domain.md)
34+
- [SSL certificates](configure-ssl-certificate.md)
35+
- [Azure Virtual Network integration](web-sites-integrate-with-vnet.md)
36+
- [Hybrid connections](app-service-hybrid-connections.md).
37+
- [Managed identities](overview-managed-identity.md)
38+
- [Backup settings](manage-backup.md)
39+
40+
Certain resources, such as imported certificates or hybrid connections, contain integration with other Azure services. For information on how to move those resources across regions, see the documentation for the respective services.
41+
42+
## Move
43+
44+
1. [Create a back up of the source app](manage-backup.md).
45+
1. [Create an app in a new App Service plan, in the target region](app-service-plan-manage.md#create-an-app-service-plan).
46+
2. [Restore the back up in the target app](web-sites-restore.md)
47+
2. If you use a custom domain, [bind it preemptively to the target app](manage-custom-dns-migrate-domain.md#bind-the-domain-name-preemptively) with `awverify.` and [enable the domain in the target app](manage-custom-dns-migrate-domain.md#enable-the-domain-for-your-app).
48+
3. Configure everything else in your target app to be the same as the source app and verify your configuration.
49+
4. When you're ready for the custom domain to point to the target app, [remap the domain name](manage-custom-dns-migrate-domain.md#remap-the-active-dns-name).
50+
51+
<!-- 1. Login to the [Azure portal](https://portal.azure.com) > **Resource Groups**.
52+
2. Locate the Resource Group that contains the source App Service resources and click on it.
53+
3. Select > **Settings** > **Export template**.
54+
4. Choose **Deploy** in the **Export template** blade.
55+
5. Click **TEMPLATE** > **Edit template** to open the template in the online editor.
56+
6. Click inside the online editor and type Ctrl+F (or ⌘+F on a Mac) and type `"identity": {` to find any managed identity definition. The following is an example if you have a user-assigned managed identity.
57+
```json
58+
"identity": {
59+
"type": "UserAssigned",
60+
"userAssignedIdentities": {
61+
"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/<group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity-name>": {
62+
"principalId": "00000000-0000-0000-0000-000000000000",
63+
"clientId": "00000000-0000-0000-0000-000000000000"
64+
}
65+
}
66+
},
67+
```
68+
6. Click inside the online editor and type Ctrl+F (or ⌘+F on a Mac) and type `"Microsoft.Web/sites/hostNameBindings` to find all hostname bindings. The following is an example if you have a user-assigned managed identity.
69+
```json
70+
{
71+
"type": "Microsoft.Web/sites/hostNameBindings",
72+
"apiVersion": "2018-11-01",
73+
"name": "[concat(parameters('sites_webapp_name'), '/', parameters('sites_webapp_name'), '.azurewebsites.net')]",
74+
"location": "West Europe",
75+
"dependsOn": [
76+
"[resourceId('Microsoft.Web/sites', parameters('sites_webapp_name'))]"
77+
],
78+
"properties": {
79+
"siteName": "<app-name>",
80+
"hostNameType": "Verified"
81+
}
82+
},
83+
```
84+
6. Click inside the online editor and type Ctrl+F (or ⌘+F on a Mac) and type `"Microsoft.Web/certificates` to find all hostname bindings. The following is an example if you have a user-assigned managed identity.
85+
```json
86+
{
87+
"type": "Microsoft.Web/certificates",
88+
"apiVersion": "2018-11-01",
89+
"name": "[parameters('certificates_test2_cephaslin_com_name')]",
90+
"location": "West Europe",
91+
"properties": {
92+
"hostNames": [
93+
"[parameters('certificates_test2_cephaslin_com_name')]"
94+
],
95+
"password": "[parameters('certificates_test2_cephaslin_com_password')]"
96+
}
97+
},
98+
```
99+
7. Delete the entire JSON block. Click **Save** in the online editor.
100+
8. Click **BASICS** > **Create new** to create a new resource group. Type the group name and click **OK**.
101+
9. In **BASICS** > **Location**, select the region you want. -->
102+
103+
## Clean up source resources
104+
105+
Delete the source app and App Service plan. [An App Service plan in the non-free tier carries a charge, even if no app is running in it.](app-service-plan-manage.md#delete-an-app-service-plan)
106+
107+
## Next steps
108+
109+
[Azure App Service App Cloning Using PowerShell](app-service-web-app-cloning.md)

articles/app-service/toc.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,10 +203,14 @@
203203
href: app-service-web-restore-snapshots.md
204204
- name: Clone an app
205205
href: app-service-web-app-cloning.md
206-
- name: Move resources
207-
href: ../azure-resource-manager/management/move-resource-group-and-subscription.md?toc=%2fazure%2fapp-service%2ftoc.json#app-service-limitations
208206
- name: Restore deleted App Service
209207
href: app-service-undelete.md
208+
- name: Move app
209+
items:
210+
- name: Move between regions
211+
href: manage-move-across-regions.md
212+
- name: Move subscriptions
213+
href: ../azure-resource-manager/management/move-resource-group-and-subscription.md?toc=%2fazure%2fapp-service%2ftoc.json#app-service-limitations
210214
- name: Run background tasks
211215
items:
212216
- name: Create WebJobs

0 commit comments

Comments
 (0)