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"
              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. 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
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. 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

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.

Para más información sobre el trabajo con directivas, vea: