Establecer cuota de uso por clave
SE APLICA A: Desarrollador | Básico | Estándar | Premium
La directiva quota-by-key
aplica un volumen de llamadas o una cuota de ancho de banda por clave renovables o permanentes. La clave puede tener un valor de cadena arbitrario y normalmente se proporciona mediante una expresión de directiva. Puede agregarse una condición de incremento opcional para especificar qué solicitudes se cuentan para esta cuota. Si varias directivas incrementan el mismo valor de clave, se incrementa solo una vez por solicitud. Cuando se supera la cuota, el autor de la llamada recibe un código de estado de respuesta 403 Forbidden
y la respuesta incluye un encabezado Retry-After
cuyo valor es el intervalo de reintento recomendado en segundos.
Para comprender la diferencia entre las cuotas y los límites de frecuencia, consulte Límites y cuotas de frecuencia.
Nota
Cuando los recursos de proceso subyacentes se reinician en la plataforma de servicio, API Management pueden seguir administrando las solicitudes durante un breve período después de alcanzar una cuota.
Nota
Establezca los elementos de la directiva y los elementos secundarios en el orden proporcionado en la instrucción de directiva. Para que pueda configurar esta directiva, el portal proporciona un editor guiado basado en formularios. Obtenga más información sobre el establecimiento o modificación de directivas de API Management.
Instrucción de la directiva
<quota-by-key calls="number"
bandwidth="kilobytes"
renewal-period="seconds"
increment-condition="condition"
increment-count="number"
counter-key="key value"
first-period-start="date-time" />
Atributos
Atributo | Descripción | Necesario | Valor predeterminado |
---|---|---|---|
bandwidth | Número total máximo de kilobytes permitidos durante el intervalo de tiempo especificado en renewal-period . No se permiten expresiones de directiva. |
Debe especificarse calls , bandwidth o ambos. |
N/D |
calls | Número total máximo de llamadas permitidas durante el intervalo de tiempo especificado en renewal-period . No se permiten expresiones de directiva. |
Debe especificarse calls , bandwidth o ambos. |
N/D |
counter-key | La clave que se va a usar para quota policy . En cada valor de clave, se usa un único contador para todos los ámbitos en los que se configura la directiva. Se permiten expresiones de directiva. |
Sí | N/D |
increment-condition | Expresión booleana que especifica si la solicitud debe contar para la cuota (true ). Se permiten expresiones de directiva. |
No | N/D |
increment-count | Número por el que aumenta el contador por solicitud. Se permiten expresiones de directiva. | No | 1 |
renewal-period | Longitud en segundos de la ventana fija después de la cual se restablece la cuota. El inicio de cada período se calcula en relación con first-period-start . Período mínimo: 300 segundos. Cuando renewal-period se establece en 0, el período se establece en infinito. No se permiten expresiones de directiva. |
Sí | N/D |
first-period-start | Fecha y hora de inicio de los períodos de renovación de cuota en formato yyyy-MM-ddTHH:mm:ssZ , según lo especificado por el estándar ISO 8601. No se permiten expresiones de directiva. |
No | 0001-01-01T00:00:00Z |
Uso
- Secciones de la directiva: inbound (entrada)
- Ámbitos de la directiva: global, área de trabajo, producto, API, operación
- Puertas de enlace: clásica, autohospedada, área de trabajo
Notas de uso
El valor del atributo counter-key
debe ser único en todas las API de la instancia de API Management si no quiere compartir el total entre las demás API.
Ejemplo
<policies>
<inbound>
<base />
<quota-by-key calls="10000" bandwidth="40000" renewal-period="3600"
increment-condition="@(context.Response.StatusCode >= 200 && context.Response.StatusCode < 400)"
counter-key="@(context.Request.IpAddress)" />
</inbound>
<outbound>
<base />
</outbound>
</policies>
Para obtener más información y ver ejemplos de esta directiva, consulte Limitación avanzada de solicitudes con Azure API Management.
Directivas relacionadas
Contenido relacionado
Para más información sobre el trabajo con directivas, vea:
- Tutorial: Transformación y protección de una API
- Referencia de directivas para una lista completa de instrucciones de directivas y su configuración
- Expresiones de directiva
- Establecimiento o edición de directivas
- Reutilización de configuraciones de directivas
- Repositorio de fragmentos de código de directiva
- Creación de directivas mediante Microsoft Copilot en Azure