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-api-import-restrictions.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -254,6 +254,9 @@ Namespaces other than the target aren't preserved on export. While you can impor
254
254
### Multiple endpoints
255
255
WSDL files can define multiple services and endpoints (ports) by one or more `wsdl:service` and `wsdl:port` elements. However, the API Management gateway is able to import and proxy requests to only a single service and endpoint. If multiple services or endpoints are defined in the WSDL file, identify the target service name and endpoint when importing the API by using the [wsdlSelector](/rest/api/apimanagement/apis/create-or-update#wsdlselector) property.
256
256
257
+
> [!TIP]
258
+
> If you want to load-balance requests across multiple services and endpoints, consider configuring a [load-balanced backend pool](backends.md#load-balanced-pool-preview).
259
+
257
260
### Arrays
258
261
SOAP-to-REST transformation supports only wrapped arrays shown in the example below:
title: Azure API Management backends | Microsoft Docs
3
-
description: Learn about custom backends in API Management
3
+
description: Learn about custom backends in Azure API Management
4
4
services: api-management
5
5
documentationcenter: ''
6
6
author: dlepow
7
7
editor: ''
8
8
9
9
ms.service: api-management
10
10
ms.topic: article
11
-
ms.date: 08/16/2023
11
+
ms.date: 01/09/2024
12
12
ms.author: danlep
13
13
ms.custom:
14
14
---
@@ -26,9 +26,13 @@ API Management also supports using other Azure resources as an API backend, such
26
26
* A [Service Fabric cluster](how-to-configure-service-fabric-backend.md).
27
27
* A custom service.
28
28
29
-
API Management supports custom backends so you can manage the backend services of your API. Use custom backends, for example, to authorize the credentials of requests to the backend service. Configure and manage custom backends in the Azure portal, or using Azure APIs or tools.
29
+
API Management supports custom backends so you can manage the backend services of your API. Use custom backends for one or more of the following:
30
30
31
-
After creating a backend, you can reference the backend in your APIs. Use the [`set-backend-service`](set-backend-service-policy.md) policy to direct an incoming API request to the custom backend. If you already configured a backend web service for an API, you can use the `set-backend-service` policy to redirect the request to a custom backend instead of the default backend web service configured for that API.
31
+
* Authorize the credentials of requests to the backend service
32
+
* Protect your backend from too many requests
33
+
* Route or load-balance requests to multiple backends
34
+
35
+
Configure and manage custom backends in the Azure portal, or using Azure APIs or tools.
32
36
33
37
## Benefits of backends
34
38
@@ -38,6 +42,43 @@ A custom backend has several benefits, including:
38
42
* Easily used by configuring a transformation policy on an existing API.
39
43
* Takes advantage of API Management functionality to maintain secrets in Azure Key Vault if [named values](api-management-howto-properties.md) are configured for header or query parameter authentication.
40
44
45
+
## Reference backend using set-backend-service policy
46
+
47
+
After creating a backend, you can reference the backend in your APIs. Use the [`set-backend-service`](set-backend-service-policy.md) policy to direct an incoming API request to the custom backend. If you already configured a backend web service for an API, you can use the `set-backend-service` policy to redirect the request to a custom backend instead of the default backend web service configured for that API. For example:
48
+
49
+
```xml
50
+
<policies>
51
+
<inbound>
52
+
<base />
53
+
<set-backend-servicebackend-id="myBackend" />
54
+
</inbound>
55
+
[...]
56
+
<policies/>
57
+
```
58
+
59
+
You can use conditional logic with the `set-backend-service` policy to change the effective backend based on location, gateway that was called, or other expressions.
60
+
61
+
For example, here is a policy to route traffic to another backend based on the gateway that was called:
Starting in API version 2023-03-01 preview, API Management exposes a [circuit breaker](/rest/api/apimanagement/current-preview/backend/create-or-update?tabs=HTTP#backendcircuitbreaker) property in the backend resource to protect a backend service from being overwhelmed by too many requests.
@@ -50,16 +91,15 @@ The backend circuit breaker is an implementation of the [circuit breaker pattern
50
91
51
92
### Example
52
93
53
-
Use the API Management REST API or a Bicep or ARM template to configure a circuit breaker in a backend. In the following example, the circuit breaker trips when there are three or more `5xx` status codes indicating server errors in a day. The circuit breaker resets after one hour.
94
+
Use the API Management [REST API](/rest/api/apimanagement/backend) or a Bicep or ARM template to configure a circuit breaker in a backend. In the following example, the circuit breaker in *myBackend* in the API Management instance *myAPIM* trips when there are three or more `5xx` status codes indicating server errors in a day. The circuit breaker resets after one hour.
54
95
55
96
#### [Bicep](#tab/bicep)
56
97
57
-
Include a snippet similar to the following in your Bicep template:
98
+
Include a snippet similar to the following in your Bicep template for a backend resource with a circuit breaker:
@@ -122,18 +160,88 @@ Include a JSON snippet similar to the following in your ARM template:
122
160
]
123
161
}
124
162
}
125
-
[...]
126
163
}
127
164
```
128
165
129
166
---
130
167
168
+
## Load-balanced pool (preview)
169
+
170
+
Starting in API version 2023-05-01 preview, API Management supports backend *pools*, when you want to implement multiple backends for an API and load-balance requests across those backends. Currently, the backend pool supports round-robin load balancing.
171
+
172
+
Use a backend pool for scenarios such as the following:
173
+
174
+
* Spread the load to multiple backends, which may have individual backend circuit breakers.
175
+
* Shift the load from one set of backends to another for upgrade (blue-green deployment).
131
176
177
+
To create a backend pool, set the `type` property of the backend to `pool` and specify a list of backends that make up the pool.
178
+
179
+
> [!NOTE]
180
+
> Currently, you can only include single backends in a backend pool. You can't add a backend of type `pool` to another backend pool.
181
+
182
+
### Example
183
+
184
+
Use the API Management [REST API](/rest/api/apimanagement/backend) or a Bicep or ARM template to configure a backend pool. In the following example, the backend *myBackendPool* in the API Management instance *myAPIM* is configured with a backend pool. Example backends in the pool are named *backend-1* and *backend-2*.
185
+
186
+
#### [Bicep](#tab/bicep)
187
+
188
+
Include a snippet similar to the following in your Bicep template for a backend resource with a load-balanced pool:
"description": "Load balancer for multiple backends",
222
+
"type": "Pool",
223
+
"protocol": "http",
224
+
"url": "http://unused",
225
+
"pool": {
226
+
"services": [
227
+
{
228
+
"id": "/backends/backend-1"
229
+
},
230
+
{
231
+
"id": "/backends/backend-2"
232
+
}
233
+
]
234
+
}
235
+
}
236
+
}
237
+
```
238
+
239
+
---
132
240
## Limitation
133
241
134
242
For **Developer** and **Premium** tiers, an API Management instance deployed in an [internal virtual network](api-management-using-with-internal-vnet.md) can throw HTTP 500 `BackendConnectionFailure` errors when the gateway endpoint URL and backend URL are the same. If you encounter this limitation, follow the instructions in the [Self-Chained API Management request limitation in internal virtual network mode](https://techcommunity.microsoft.com/t5/azure-paas-blog/self-chained-apim-request-limitation-in-internal-virtual-network/ba-p/1940417) article in the Tech Community blog.
135
243
136
-
## Next steps
244
+
## Related content
137
245
138
246
* Set up a [Service Fabric backend](how-to-configure-service-fabric-backend.md) using the Azure portal.
139
-
* Backends can also be configured using the API Management [REST API](/rest/api/apimanagement), [Azure PowerShell](/powershell/module/az.apimanagement/new-azapimanagementbackend), or [Azure Resource Manager templates](../service-fabric/service-fabric-tutorial-deploy-api-management.md).
Copy file name to clipboardExpand all lines: articles/azure-arc/servers/troubleshoot-agent-onboard.md
-3Lines changed: 0 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -104,16 +104,13 @@ The following table lists some of the known errors and suggestions on how to tro
104
104
|--------|------|---------------|---------|
105
105
|Failed to acquire authorization token device flow |`Error occurred while sending request for Device Authorization Code: Post https://login.windows.net/fb84ce97-b875-4d12-b031-ef5e7edf9c8e/oauth2/devicecode?api-version=1.0: dial tcp 40.126.9.7:443: connect: network is unreachable.`|Can't reach `login.windows.net` endpoint | Run [azcmagent check](azcmagent-check.md) to see if a firewall is blocking access to Microsoft Entra ID. |
106
106
|Failed to acquire authorization token device flow |`Error occurred while sending request for Device Authorization Code: Post https://login.windows.net/fb84ce97-b875-4d12-b031-ef5e7edf9c8e/oauth2/devicecode?api-version=1.0: dial tcp 40.126.9.7:443: connect: network is Forbidden`. |Proxy or firewall is blocking access to `login.windows.net` endpoint. | Run [azcmagent check](azcmagent-check.md) to see if a firewall is blocking access to Microsoft Entra ID.|
107
-
|Failed to acquire authorization token device flow |`Error occurred while sending request for Device Authorization Code: Post https://login.windows.net/fb84ce97-b875-4d12-b031-ef5e7edf9c8e/oauth2/devicecode?api-version=1.0: dial tcp lookup login.windows.net: no such host`. | Group Policy Object *Computer Configuration\ Administrative Templates\ System\ User Profiles\ Delete user profiles older than a specified number of days on system restart* is enabled. | Verify the GPO is enabled and targeting the affected machine. See footnote <sup>[1](#footnote1)</sup> for further details. |
108
107
|Failed to acquire authorization token from SPN |`Failed to execute the refresh request. Error = 'Post https://login.windows.net/fb84ce97-b875-4d12-b031-ef5e7edf9c8e/oauth2/token?api-version=1.0: Forbidden'`|Proxy or firewall is blocking access to `login.windows.net` endpoint. |Run [azcmagent check](azcmagent-check.md) to see if a firewall is blocking access to Microsoft Entra ID. |
109
108
|Failed to acquire authorization token from SPN |`Invalid client secret is provided`|Wrong or invalid service principal secret. |Verify the service principal secret. |
110
109
| Failed to acquire authorization token from SPN |`Application with identifier 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' wasn't found in the directory 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'. This can happen if the application has not been installed by the administrator of the tenant or consented to by any user in the tenant`|Incorrect service principal and/or Tenant ID. |Verify the service principal and/or the tenant ID.|
111
110
|Get ARM Resource Response |`The client '[email protected]' with object id 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' does not have authorization to perform action 'Microsoft.HybridCompute/machines/read' over scope '/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/myResourceGroup/providers/Microsoft.HybridCompute/machines/MSJC01' or the scope is invalid. If access was recently granted, please refresh your credentials."}}" Status Code=403`|Wrong credentials and/or permissions |Verify you or the service principal is a member of the **Azure Connected Machine Onboarding** role. |
112
111
|Failed to AzcmagentConnect ARM resource |`The subscription isn't registered to use namespace 'Microsoft.HybridCompute'`|Azure resource providers aren't registered. |Register the [resource providers](prerequisites.md#azure-resource-providers). |
113
112
|Failed to AzcmagentConnect ARM resource |`Get https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/myResourceGroup/providers/Microsoft.HybridCompute/machines/MSJC01?api-version=2019-03-18-preview: Forbidden`|Proxy server or firewall is blocking access to `management.azure.com` endpoint. | Run [azcmagent check](azcmagent-check.md) to see if a firewall is blocking access to Azure Resource Manager. |
114
113
115
-
<aname="footnote1"></a><sup>1</sup>If this GPO is enabled and applies to machines with the Connected Machine agent, it deletes the user profile associated with the built-in account specified for the *himds* service. As a result, it also deletes the authentication certificate used to communicate with the service that is cached in the local certificate store for 30 days. Before the 30-day limit, an attempt is made to renew the certificate. To resolve this issue, follow the steps to [disconnect the agent](azcmagent-disconnect.md) and then re-register it with the service running `azcmagent connect`.
116
-
117
114
## Next steps
118
115
119
116
If you don't see your problem here or you can't resolve your issue, try one of the following channels for more support:
Copy file name to clipboardExpand all lines: articles/azure-monitor/visualize/workbooks-jsonpath.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -73,7 +73,7 @@ In this example, the JSON object represents a store's inventory. We're going to
73
73
74
74
:::image type="content" source="media/workbooks-jsonpath/query-jsonpath.png" alt-text="Screenshot that shows editing a query item with JSON data source and JSON path result format.":::
75
75
76
-
## Use regular expressions to covert values
76
+
## Use regular expressions to convert values
77
77
78
78
You may have some data that isn't in a standard format. To use that data effectively, you would want to convert that data into a standard format.
Copy file name to clipboardExpand all lines: articles/azure-netapp-files/azure-government.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -34,7 +34,7 @@ All [Azure NetApp Files features](whats-new.md) available on Azure public cloud
34
34
| Azure NetApp Files backup | Public preview | No |
35
35
| Azure NetApp Files large volumes | Public preview | No |
36
36
| Edit network features for existing volumes | Public preview | No |
37
-
| Standard storage with cool access in Azure NetApp Files | Public preview |No|
37
+
| Standard storage with cool access in Azure NetApp Files | Public preview |Public preview [(in select regions)](cool-access-introduction.md#supported-regions)|
0 commit comments