You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/api-management/api-management-howto-disaster-recovery-backup-restore.md
+33-30Lines changed: 33 additions & 30 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,16 +12,16 @@ ms.workload: mobile
12
12
ms.tgt_pltfrm: na
13
13
ms.devlang: na
14
14
ms.topic: article
15
-
ms.date: 08/15/2018
15
+
ms.date: 11/14/2018
16
16
ms.author: apimpm
17
17
---
18
18
# How to implement disaster recovery using service backup and restore in Azure API Management
19
19
20
-
By choosing to publish and manage your APIs via Azure API Management you are taking advantage of many fault tolerance and infrastructure capabilities that you would otherwise have to design, implement, and manage. The Azure platform mitigates a large fraction of potential failures at a fraction of the cost.
20
+
By publishing and managing your APIs via Azure API Management, you're taking advantage of fault tolerance and infrastructure capabilities that you'd otherwise design, implement, and manage manually. The Azure platform mitigates a large fraction of potential failures at a fraction of the cost.
21
21
22
-
To recover from availability problems affecting the region where your API Management service is hosted, you should be ready to reconstitute your service in a different region at any time. Depending on your availability goals and recovery time objective, you might want to reserve a backup service in one or more regions and try to maintain their configuration and content in sync with the active service. The service "backup and restore" feature provides the necessary building block for implementing your disaster recovery strategy.
22
+
To recover from availability problems that affect the region that hosts your API Management service, be ready to reconstitute your service in another region at any time. Depending on your availability and recovery time goals, you might want to reserve a backup service in one or more regions. You might also try to maintain their configuration and content in sync with the active service. The service "backup and restore" feature provides the necessary building block for implementing your disaster recovery strategy.
23
23
24
-
This guide shows how to authenticate Azure Resource Manager requests, and how to back up and restore your API Management service instances.
24
+
This guide shows how to authenticate Azure Resource Manager requests. It also shows how to back up and restore your API Management service instances.
25
25
26
26
> [!NOTE]
27
27
> The process for backing up and restoring an API Management service instance for disaster recovery can also be used for replicating API Management service instances for scenarios such as staging.
@@ -43,17 +43,17 @@ All of the tasks that you do on resources using the Azure Resource Manager must
43
43
44
44
### Create an Azure Active Directory application
45
45
46
-
1. Sign in to the [Azure portal](https://portal.azure.com).
46
+
1. Sign in to the [Azure portal](https://portal.azure.com).
47
47
2. Using the subscription that contains your API Management service instance, navigate to the **App registrations** tab in **Azure Active Directory** (Azure Active Directory > Manage/App registrations).
48
48
49
49
> [!NOTE]
50
-
> If the Azure Active Directory default directory is not visible to your account, contact the administrator of the Azure subscription to grant the required permissions to your account.
50
+
> If the Azure Active Directory default directory isn't visible to your account, contact the administrator of the Azure subscription to grant the required permissions to your account.
51
51
3. Click **New application registration**.
52
52
53
-
The **Create** window appears on the right. That is where you enter the AAD app relevant information.
53
+
The **Create** window appears on the right. That's where you enter the AAD app relevant information.
54
54
4. Enter a name for the application.
55
55
5. For the application type, select **Native**.
56
-
6. Enter a placeholder URL such as `http://resources` for the **Redirect URI**, as it is a required field, but the value is not used later. Click the check box to save the application.
56
+
6. Enter a placeholder URL such as `http://resources` for the **Redirect URI**, as it's a required field, but the value isn't used later. Click the check box to save the application.
57
57
7. Click **Create**.
58
58
59
59
### Add an application
@@ -63,7 +63,7 @@ All of the tasks that you do on resources using the Azure Resource Manager must
63
63
3. Click **+Add**.
64
64
4. Press **Select an API**.
65
65
5. Choose **Windows****Azure Service Management API**.
@@ -73,7 +73,7 @@ All of the tasks that you do on resources using the Azure Resource Manager must
73
73
74
74
### Configuring your app
75
75
76
-
Prior to invoking the APIs that generate the backup and restore it, it is necessary to get a token. The following example uses the [Microsoft.IdentityModel.Clients.ActiveDirectory](https://www.nuget.org/packages/Microsoft.IdentityModel.Clients.ActiveDirectory) NuGet package to retrieve the token.
76
+
Before calling the APIs that generate the backup and restore it, you need to get a token. The following example uses the [Microsoft.IdentityModel.Clients.ActiveDirectory](https://www.nuget.org/packages/Microsoft.IdentityModel.Clients.ActiveDirectory) NuGet package to retrieve the token.
Replace `{tentand id}`, `{application id}`, and `{redirect uri}` using the following instructions:
103
+
Replace `{tenant id}`, `{application id}`, and `{redirect uri}` using the following instructions:
104
104
105
-
1. Replace `{tenant id}` with the tenant id of the Azure Active Directory application you created. You can access the id by clicking **App registrations** -> **Endpoints**.
105
+
1. Replace `{tenant id}` with the tenant ID of the Azure Active Directory application you created. You can access the ID by clicking **App registrations** -> **Endpoints**.
106
106
107
107
![Endpoints][api-management-endpoint]
108
108
2. Replace `{application id}` with the value you get by navigating to the **Settings** page.
@@ -117,7 +117,7 @@ Replace `{tentand id}`, `{application id}`, and `{redirect uri}` using the follo
117
117
118
118
## Calling the backup and restore operations
119
119
120
-
The REST APIs are [Api Management Service - Backup](https://docs.microsoft.com/rest/api/apimanagement/apimanagementservice/apimanagementservice_backup) and [Api Management Service - Restore](https://docs.microsoft.com/rest/api/apimanagement/apimanagementservice/apimanagementservice_restore).
120
+
The REST APIs are [Api Management Service - Backup](/rest/api/apimanagement/apimanagementservice/backup) and [Api Management Service - Restore](/rest/api/apimanagement/apimanagementservice/restore).
121
121
122
122
Before calling the "backup and restore" operations described in the following sections, set the authorization request header for your REST call.
### <aname="step1"> </a>Back up an API Management service
129
+
129
130
To back up an API Management service issue the following HTTP request:
130
131
131
-
```
132
+
```http
132
133
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/backup?api-version={api-version}
133
134
```
134
135
135
136
where:
136
137
137
-
*`subscriptionId` - id of the subscription containing the API Management service you are attempting to back up
138
+
*`subscriptionId` - ID of the subscription that holds the API Management service you're trying to back up
138
139
*`resourceGroupName` - name of the resource group of your Azure API Management service
139
-
*`serviceName` - the name of the API Management service you are making a backup of specified at the time of its creation
140
+
*`serviceName` - the name of the API Management service you're making a backup of specified at the time of its creation
140
141
*`api-version` - replace with `2018-06-01-preview`
141
142
142
143
In the body of the request, specify the target Azure storage account name, access key, blob container name, and backup name:
143
144
144
-
145
145
```json
146
146
{
147
147
"storageAccount": "{storage account name for the backup}",
@@ -153,32 +153,33 @@ In the body of the request, specify the target Azure storage account name, acces
153
153
154
154
Set the value of the `Content-Type` request header to `application/json`.
155
155
156
-
Backup is a long running operation that may take multiple minutes to complete. If the request was successful and the backup process was initiated, you receive a `202 Accepted` response status code with a `Location` header. Make 'GET' requests to the URL in the `Location` header to find out the status of the operation. While the backup is in progress, you continue to receive a '202 Accepted' status code. A Response code of `200 OK` indicates successful completion of the backup operation.
156
+
Backup is a long running operation that may take more than a minute to complete. If the request succeeded and the backup process began, you receive a `202 Accepted` response status code with a `Location` header. Make 'GET' requests to the URL in the `Location` header to find out the status of the operation. While the backup is in progress, you continue to receive a '202 Accepted' status code. A Response code of `200 OK` indicates successful completion of the backup operation.
157
157
158
-
Note the following constraints when making a backup request.
158
+
Note the following constraints when making a backup request:
159
159
160
160
***Container** specified in the request body **must exist**.
161
-
* While backup is in progress you **should not attempt any service management operations** such as SKU upgrade or downgrade, domain name change, etc.
161
+
* While backup is in progress, **avoid changes in service management** such as SKU upgrade or downgrade, change in domain name, and more.
162
162
* Restore of a **backup is guaranteed only for 30 days** since the moment of its creation.
163
-
***Usage data** used for creating analytics reports **is not included** in the backup. Use [Azure API Management REST API][Azure API Management REST API] to periodically retrieve analytics reports for safekeeping.
164
-
* The frequency with which you perform service backups affect your recovery point objective. To minimize it, the recommendation is implementing regular backups as well as performing on-demand backups after making important changes to your API Management service.
165
-
***Changes** made to the service configuration (for example, APIs, policies, developer portal appearance) while backup operation is in process **might not be included in the backup and therefore will be lost**.
163
+
***Usage data** used for creating analytics reports **isn't included** in the backup. Use [Azure API Management REST API][Azure API Management REST API] to periodically retrieve analytics reports for safekeeping.
164
+
* The frequency with which you perform service backups affect your recovery point objective. To minimize it, we recommend implementing regular backups and performing on-demand backups after you make changes to your API Management service.
165
+
***Changes** made to the service configuration, (for example, APIs, policies, and developer portal appearance) while backup operation is in process **might be excluded from the backup and will be lost**.
166
166
167
167
### <aname="step2"> </a>Restore an API Management service
168
-
To restore an API Management service from a previously created backup make the following HTTP request:
169
168
170
-
```
169
+
To restore an API Management service from a previously created backup, make the following HTTP request:
170
+
171
+
```http
171
172
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/restore?api-version={api-version}
172
173
```
173
174
174
175
where:
175
176
176
-
*`subscriptionId` - id of the subscription containing the API Management service you are restoring a backup into
177
-
*`resourceGroupName` - name of the resource group containing the Azure API Management service you are restoring a backup into
178
-
*`serviceName` - the name of the API Management service being restored into specified at the time of its creation
177
+
*`subscriptionId` - ID of the subscription that holds the API Management service you're restoring a backup into
178
+
*`resourceGroupName` - name of the resource group that holds the Azure API Management service you're restoring a backup into
179
+
*`serviceName` - the name of the API Management service being restored into specified at its creation time
179
180
*`api-version` - replace with `2018-06-01-preview`
180
181
181
-
In the body of the request, specify the backup file location, that is, Azure storage account name, access key, blob container name, and backup name:
182
+
In the body of the request, specify the backup file location. That is, add the Azure storage account name, access key, blob container name, and backup name:
182
183
183
184
```json
184
185
{
@@ -191,13 +192,15 @@ In the body of the request, specify the backup file location, that is, Azure sto
191
192
192
193
Set the value of the `Content-Type` request header to `application/json`.
193
194
194
-
Restore is a long running operation that may take up to 30 or more minutes to complete. If the request was successful and the restore process was initiated, you receive a `202 Accepted` response status code with a `Location` header. Make 'GET' requests to the URL in the `Location` header to find out the status of the operation. While the restore is in progress, you continue to receive '202 Accepted' status code. A response code of `200 OK` indicates successful completion of the restore operation.
195
+
Restore is a long running operation that may take up to 30 or more minutes to complete. If the request succeeded and the restore process began, you receive a `202 Accepted` response status code with a `Location` header. Make 'GET' requests to the URL in the `Location` header to find out the status of the operation. While the restore is in progress, you continue to receive '202 Accepted' status code. A response code of `200 OK` indicates successful completion of the restore operation.
195
196
196
197
> [!IMPORTANT]
197
198
> **The SKU** of the service being restored into **must match** the SKU of the backed-up service being restored.
198
199
>
199
200
> **Changes** made to the service configuration (for example, APIs, policies, developer portal appearance) while restore operation is in progress **could be overwritten**.
200
201
202
+
<!-- Dummy comment added to suppress markdown lint warning -->
203
+
201
204
> [!NOTE]
202
205
> Backup and restore operations can also be performed with PowerShell *Backup-AzureRmApiManagement* and *Restore-AzureRmApiManagement* commands respectively.
Copy file name to clipboardExpand all lines: articles/azure-maps/map-search-location.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,7 +26,7 @@ The first block of code constructs a map object and initializes the client servi
26
26
27
27
The second block of code uses the [Azure Maps Fuzzy Search API](https://docs.microsoft.com/rest/api/maps/search/getsearchfuzzy) to search for point of interest. Fuzzy search API can handle any combination of fuzzy inputs. The response from the fuzzy search service is then parsed into GeoJSON format using the [getGeoJsonSearchResponse](https://docs.microsoft.com/javascript/api/azure-maps-rest/atlas.service.geojson.geojsonsearchresponse?view=azure-iot-typescript-latest#geojsonsearchresponse) method. The pins are then added to the map to show the points of interest on the map.
28
28
29
-
The last block of code adjusts the camera bounds for the map by using the Map's [setCameraBounds](https://docs.microsoft.com/javascript/api/azure-maps-control/models.cameraboundsoptions?view=azure-iot-typescript-latest) property.
29
+
The last block of code adjusts the camera bounds for the map by using the Map's [setCameraBounds](/javascript/api/azure-maps-control/atlas.map#setcamerabounds-cameraboundsoptions-) property.
30
30
31
31
## Make a search request via XMLHttpRequest
32
32
@@ -39,7 +39,7 @@ The second code block adds search results layer to the map. The search results l
39
39
40
40
The third block of code sends an [XMLHttpRequest](https://xhr.spec.whatwg.org/) to [Azure Maps Fuzzy search API](https://docs.microsoft.com/rest/api/maps/search/getsearchfuzzy) to search for the point of interest. Fuzzy search API can handle any combination of fuzzy inputs.
41
41
42
-
The last block of code parses the response and adjusts the adjusts the camera bounds for the map by using the Map's [setCameraBounds](https://docs.microsoft.com/javascript/api/azure-maps-control/models.cameraboundsoptions?view=azure-iot-typescript-latest) to render the result pins.
42
+
The last block of code parses the response and adjusts the adjusts the camera bounds for the map by using the Map's [setCameraBounds](/javascript/api/azure-maps-control/atlas.map#setcamerabounds-cameraboundsoptions-) to render the result pins.
43
43
44
44
## Next steps
45
45
@@ -57,6 +57,6 @@ See the following articles for full code examples:
57
57
58
58
> [!div class="nextstepaction"]
59
59
> [Get information from a coordinate](./map-get-information-from-coordinate.md)
60
-
60
+
<!-- Comment added to suppress false positive warning -->
0 commit comments