Skip to content

Commit 93d70ee

Browse files
committed
Merge branch 'main' of https://github.com/MicrosoftDocs/azure-docs-pr into wi-481952-remove-preview-sentinel-health
2 parents 9d339bd + fa81e54 commit 93d70ee

490 files changed

Lines changed: 7665 additions & 10172 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.openpublishing.redirection.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7080,6 +7080,11 @@
70807080
"redirect_document_id": false
70817081
},
70827082
{
7083+
"source_path": "articles/reliability/availability-zones-migration-overview.md",
7084+
"redirect_url": "/azure/reliability/availability-zones-enable-zone-resiliency",
7085+
"redirect_document_id": false
7086+
},
7087+
{
70837088
"source_path": "articles/app-service/sre-agent-overview.md",
70847089
"redirect_url": "/azure/sre-agent/overview",
70857090
"redirect_document_id": false

articles/api-management/api-management-howto-add-products.md

Lines changed: 38 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Tutorial - Create and publish a product in Azure API Management
33
description: In this tutorial, you create and publish a product in Azure API Management. Once it's published, developers can begin to use the product's APIs.
44
ms.topic: tutorial
5-
ms.date: 10/22/2024
5+
ms.date: 08/19/2025
66
ms.custom: devdivchpfy22, devx-track-azurecli
77
ms.service: azure-api-management
88
author: dlepow
@@ -52,7 +52,7 @@ In this tutorial, you learn how to:
5252
|--------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
5353
| Display name | The name as you want it to be shown in the [developer portal](api-management-howto-developer-portal.md). |
5454
| Description | Provide information about the product such as its purpose, the APIs it provides access to, and other details. |
55-
| State | Select **Published** if you want to publish the product to the developer portal. Before the APIs in a product can be discovered by developers, the product must be published. By default, new products are unpublished. |
55+
| State | Select **Published** if you want to publish the product to the developer portal for discovery of the product's APIs by developers. By default, new products are unpublished.<br/><br/>Regardless of whether the product is published, all of the product's APIs are accessible for requests via the API Management gateway. |
5656
| Requires subscription | Select if a user is required to subscribe to use the product (the product is *protected*) and a subscription key must be used to access the product's APIs. If a subscription isn't required (the product is *open*), a subscription key isn't required to access the product's APIs. See [Access to product APIs](#access-to-product-apis) later in this article. |
5757
| Requires approval | Select if you want an administrator to review and accept or reject subscription attempts to this product. If not selected, subscription attempts are auto-approved. |
5858
| Subscription count limit | Optionally limit the count of multiple simultaneous subscriptions. Minimum value: 1 |
@@ -172,44 +172,6 @@ az apim product api delete --resource-group apim-hello-word-resource-group \
172172

173173
---
174174

175-
## Access to product APIs
176-
177-
After you publish a product, developers can access the APIs. Depending on how the product is configured, they may need to subscribe to the product for access.
178-
179-
* **Protected product** - Developers must first subscribe to a protected product to get access to the product's APIs. When they subscribe, they get a subscription key that can access any API in that product. If you created the API Management instance, you are an administrator already, so you are subscribed to every product by default. For more information, see [Subscriptions in Azure API Management](api-management-subscriptions.md).
180-
181-
When a client makes an API request with a valid product subscription key, API Management processes the request and permits access in the context of the product. Policies and access control rules configured for the product can be applied.
182-
183-
> [!TIP]
184-
> You can create or update a user's subscription to a product with custom subscription keys through a [REST API](/rest/api/apimanagement/current-ga/subscription/create-or-update) or PowerShell command.
185-
186-
* **Open product** - Developers can access an open product's APIs without a subscription key. However, you can configure other mechanisms to secure client access to the APIs, including [OAuth 2.0](api-management-howto-protect-backend-with-aad.md), [client certificates](api-management-howto-mutual-certificates-for-clients.md), and [restricting caller IP addresses](ip-filter-policy.md).
187-
188-
> [!NOTE]
189-
> Open products aren't listed in the developer portal for developers to learn about or subscribe to. They're visible only to the **Administrators** group. You'll need to use another mechanism to inform developers about APIs that can be accessed without a subscription key.
190-
191-
When a client makes an API request without a subscription key:
192-
193-
* API Management checks whether the API is associated with an open product. An API can be associated with at most one open product.
194-
195-
* If the open product exists, it then processes the request in the context of that open product. Policies and access control rules configured for the open product can be applied.
196-
197-
For more information, see [How API Management handles requests with or without subscription keys](api-management-subscriptions.md#how-api-management-handles-requests-with-or-without-subscription-keys).
198-
199-
## Next steps
200-
201-
In this tutorial, you learned how to:
202-
203-
> [!div class="checklist"]
204-
> * Create and publish a product
205-
> * Add an API to the product
206-
> * Access product APIs
207-
208-
Advance to the next tutorial:
209-
210-
> [!div class="nextstepaction"]
211-
> [Create blank API and mock API responses](mock-api-responses.md)
212-
213175
:::zone-end
214176

215177
:::zone pivot="terraform"
@@ -288,9 +250,42 @@ az apim show --<apim_service_name> --<resource_group_name>
288250

289251
[Troubleshoot common problems when using Terraform on Azure](/azure/developer/terraform/troubleshoot).
290252

253+
:::zone-end
254+
255+
## Access to product APIs
256+
257+
After you publish a product, developers can discover the product's APIs in the developer portal. Depending on how the product is configured, they may need to subscribe to the product for access.
258+
259+
* **Protected product** - Developers must first subscribe to a protected product to get access to the product's APIs. When they subscribe, they get a subscription key that can access any API in that product. If you created the API Management instance, you are an administrator already, so you are subscribed to every product by default. For more information, see [Subscriptions in Azure API Management](api-management-subscriptions.md).
260+
261+
When a client makes an API request with a valid product subscription key, API Management processes the request and permits access in the context of the product. Policies and access control rules configured for the product can be applied.
262+
263+
> [!TIP]
264+
> You can create or update a user's subscription to a product with custom subscription keys through a [REST API](/rest/api/apimanagement/current-ga/subscription/create-or-update) or PowerShell command.
265+
266+
* **Open product** - Developers can access an open product's APIs without a subscription key. However, you can configure other mechanisms to secure client access to the APIs, including [OAuth 2.0](api-management-howto-protect-backend-with-aad.md), [client certificates](api-management-howto-mutual-certificates-for-clients.md), and [restricting caller IP addresses](ip-filter-policy.md).
267+
268+
> [!NOTE]
269+
> Open products aren't listed in the developer portal for developers to learn about or subscribe to. They're visible only to the **Administrators** group. You'll need to use another mechanism to inform developers about APIs that can be accessed without a subscription key.
270+
271+
When a client makes an API request without a subscription key:
272+
273+
* API Management checks whether the API is associated with an open product. An API can be associated with at most one open product.
274+
275+
* If the open product exists, it then processes the request in the context of that open product. Policies and access control rules configured for the open product can be applied.
276+
277+
For more information, see [How API Management handles requests with or without subscription keys](api-management-subscriptions.md#how-api-management-handles-requests-with-or-without-subscription-keys).
278+
291279
## Next steps
292280

293-
> [!div class="nextstepaction"]
294-
> [Create blank API and mock API responses](mock-api-responses.md).
281+
In this tutorial, you learned how to:
295282

296-
:::zone-end
283+
> [!div class="checklist"]
284+
> * Create and publish a product
285+
> * Add an API to the product
286+
> * Access product APIs
287+
288+
Advance to the next tutorial:
289+
290+
> [!div class="nextstepaction"]
291+
> [Create blank API and mock API responses](mock-api-responses.md)

articles/api-management/azure-openai-semantic-cache-lookup-policy.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ Use the `azure-openai-semantic-cache-lookup` policy to perform cache lookup of r
6363

6464
- [**Policy sections:**](./api-management-howto-policies.md#understanding-policy-configuration) inbound
6565
- [**Policy scopes:**](./api-management-howto-policies.md#scopes) global, product, API, operation
66-
- [**Gateways:**](api-management-gateways-overview.md) classic, v2, consumption
66+
- [**Gateways:**](api-management-gateways-overview.md) classic, v2, consumption, self-hosted
6767

6868
### Usage notes
6969

articles/api-management/azure-openai-semantic-cache-store-policy.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ The `azure-openai-semantic-cache-store` policy caches responses to Azure OpenAI
4646

4747
- [**Policy sections:**](./api-management-howto-policies.md#understanding-policy-configuration) outbound
4848
- [**Policy scopes:**](./api-management-howto-policies.md#scopes) global, product, API, operation
49-
- [**Gateways:**](api-management-gateways-overview.md) classic, v2, consumption
49+
- [**Gateways:**](api-management-gateways-overview.md) classic, v2, consumption, self-hosted
5050

5151
### Usage notes
5252

articles/api-management/azure-openai-token-limit-policy.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ ms.collection: ce-skilling-ai-copilot
99
ms.custom:
1010
- build-2024
1111
ms.topic: reference
12-
ms.date: 02/18/2025
12+
ms.date: 08/14/2025
1313
ms.update-cycle: 180-days
1414
ms.author: danlep
1515
---
@@ -54,8 +54,8 @@ By relying on token usage metrics returned from the OpenAI endpoint, the policy
5454
| estimate-prompt-tokens | Boolean value that determines whether to estimate the number of tokens required for a prompt: <br> - `true`: estimate the number of tokens based on prompt schema in API; may reduce performance. <br> - `false`: don't estimate prompt tokens. <br><br>When set to `false`, the remaining tokens per `counter-key` are calculated using the actual token usage from the response of the model. This could result in prompts being sent to the model that exceed the token limit. In such case, this will be detected in the response, and all succeeding requests will be blocked by the policy until the token limit frees up again. | Yes | N/A |
5555
| retry-after-header-name | The name of a custom response header whose value is the recommended retry interval in seconds after the specified `tokens-per-minute` or `token-quota` is exceeded. Policy expressions aren't allowed. | No | `Retry-After` |
5656
| retry-after-variable-name | The name of a variable that stores the recommended retry interval in seconds after the specified `tokens-per-minute` or `token-quota` is exceeded. Policy expressions aren't allowed. | No | N/A |
57-
| remaining-quota-tokens-header-name | The name of a response header whose value after each policy execution is the number of remaining tokens corresponding to `token-quota` allowed for the `token-quota-period`. Policy expressions aren't allowed. | No | N/A |
58-
| remaining-quota-tokens-variable-name | The name of a variable that after each policy execution stores the number of remaining tokens corresponding to `token-quota` allowed for the `token-quota-period`. Policy expressions aren't allowed. | No | N/A |
57+
| remaining-quota-tokens-header-name | The name of a response header whose value after each policy execution is the estimated number of remaining tokens corresponding to `token-quota` allowed for the `token-quota-period`. Policy expressions aren't allowed. | No | N/A |
58+
| remaining-quota-tokens-variable-name | The name of a variable that after each policy execution stores the estimated number of remaining tokens corresponding to `token-quota` allowed for the `token-quota-period`. Policy expressions aren't allowed. | No | N/A |
5959
| remaining-tokens-header-name | The name of a response header whose value after each policy execution is the number of remaining tokens corresponding to `tokens-per-minute` allowed for the time interval. Policy expressions aren't allowed.| No | N/A |
6060
| remaining-tokens-variable-name | The name of a variable that after each policy execution stores the number of remaining tokens corresponding to `tokens-per-minute` allowed for the time interval. Policy expressions aren't allowed.| No | N/A |
6161
| tokens-consumed-header-name | The name of a response header whose value is the number of tokens consumed by both prompt and completion. The header is added to response only after the response is received from backend. Policy expressions aren't allowed.| No | N/A |
@@ -73,6 +73,7 @@ By relying on token usage metrics returned from the OpenAI endpoint, the policy
7373
* This policy can optionally be configured when adding an API from the Azure OpenAI using the portal.
7474
* Where available when `estimate-prompt-tokens` is set to `false`, values in the usage section of the response from the Azure OpenAI API are used to determine token usage.
7575
* Certain Azure OpenAI endpoints support streaming of responses. When `stream` is set to `true` in the API request to enable streaming, prompt tokens are always estimated, regardless of the value of the `estimate-prompt-tokens` attribute. Completion tokens are also estimated when responses are streamed.
76+
* The value of `remaining-quota-tokens-variable-name` or `remaining-quota-tokens-header-name` is an estimate for informational purposes but could be larger than expected based on actual token consumption. The value is more accurate as the quota is approached.
7677
* For models that accept image input, image tokens are generally counted by the backend language model and included in limit and quota calculations. However, when streaming is used or `estimate-prompt-tokens` is set to `true`, the policy currently over-counts each image as a maximum count of 1200 tokens.
7778
* [!INCLUDE [api-management-rate-limit-key-scope](../../includes/api-management-rate-limit-key-scope.md)]
7879
* [!INCLUDE [api-management-token-limit-gateway-counts](../../includes/api-management-token-limit-gateway-counts.md)]

articles/api-management/llm-semantic-cache-lookup-policy.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ Use the `llm-semantic-cache-lookup` policy to perform cache lookup of responses
6262

6363
- [**Policy sections:**](./api-management-howto-policies.md#understanding-policy-configuration) inbound
6464
- [**Policy scopes:**](./api-management-howto-policies.md#scopes) global, product, API, operation
65-
- [**Gateways:**](api-management-gateways-overview.md) classic, v2, consumption
65+
- [**Gateways:**](api-management-gateways-overview.md) classic, v2, consumption, self-hosted
6666

6767
### Usage notes
6868

articles/api-management/llm-semantic-cache-store-policy.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ The `llm-semantic-cache-store` policy caches responses to chat completion API re
4545

4646
- [**Policy sections:**](./api-management-howto-policies.md#understanding-policy-configuration) outbound
4747
- [**Policy scopes:**](./api-management-howto-policies.md#scopes) global, product, API, operation
48-
- [**Gateways:**](api-management-gateways-overview.md) classic, v2, consumption
48+
- [**Gateways:**](api-management-gateways-overview.md) classic, v2, consumption, self-hosted
4949

5050
### Usage notes
5151

0 commit comments

Comments
 (0)