DataPower API Gateway uniquement

ratelimit

Utilisez la stratégie ratelimit pour appliquer une ou plusieurs limites de débit, de diffusion en rafale ou de nombre à n'importe quel point de votre flux d'assemblage d'API. Les limites de débit et de diffusion en rafale restreignent le nombre d'appels envoyés à une API au cours d'une période spécifiée, alors que les limites de nombre imposent une limite stricte sur le nombre total d'appels.

Prise en charge des passerelles

Tableau 1. Tableau indiquant les passerelles prenant en charge cette politique, ainsi que la version correspondante de la politique
Passerelle Version de la stratégie
DataPower® API Gateway 2.0.0

2.1.0 (DataPower API Gateway version 10.0.1.0 ou ultérieure)

2.2.0 (DataPower API Gateway version 10.0.2.0 ou ultérieure)

2.3.0 (DataPower API Gateway version 10.5.0.0

Cette rubrique explique comment configurer la politique dans votre source OpenAPI; pour plus de détails sur la configuration de la politique dans l'interface utilisateur d', consultez la section « Limitation du débit ».

A propos de

Les limites de débit, de diffusion en rafale ou de nombre définies sont appliquées à tout ce qui suit dans le flux d'assemblage. Par exemple, si une règle ratelimit est placée avant une règle invoke et que l'appel effectué par la règle invoke dépasse les limites définies par la règle ratelimit , l'appel d'API lui-même échoue.

Le format de la règle ratelimit est le suivant:
- ratelimit:
    version: version
    title: title
    description: description
    source: rate_and_burst_limit_location
    rate-limit: rate_limits_to_apply
    burst-limit: burst_limits_to_apply

Propriétés

Le tableau suivant décrit les propriétés de la règle ratelimit .
Tableau 2. ratelimit propriétés de la police
Propriété Obligatoire Descriptif Type de données
version Oui Numéro de version de la stratégie chaîne
title Non Titre de la stratégie. chaîne
description Non Description de la stratégie. chaîne
source Oui Emplacement de toutes les définitions de limite de débit, de diffusion en rafale et de nombre qui sont incluses dans cette stratégie. Spécifiez l'une des valeurs suivantes :
  • catalog-named: les limites de débit ou de diffusion en rafale à appliquer sont définies dans l'objet api-collection approprié sur le DataPower API Gateway, qui est l'objet représentant votre catalogue API Connect dans la configuration de passerelle.

    Pour plus d'informations sur la configuration d'une limite de débit, de rafale ou de nombre dans api-collection l'objet, consultez la section « Configuration d'une limite de débit, de rafale ou de nombre » sur le site DataPower API Gateway.

  • plan-named : les limites à appliquer sont les limites de diffusion en rafale ou de nombre d'assemblage définies sur le plan auquel l'application appelante est abonnée. Pour plus de détails sur la configuration des limites de diffusion en rafale d'assemblage et des limites de nombre d'assemblage dans un plan, voir Edition d'un produit brouillon.
    Remarque: Les conditions suivantes s'appliquent à une règle de limite de débit plan-named :
    • La limite de débit doit être appliquée à chaque plan qui contient l'API limitée.
    • Une règle de limite de débit plan-named ne peut pas être utilisée avec des produits générés automatiquement.
  • gateway-named: les limites à appliquer sont définies dans l'objet apigw , nommé apiconnect, sur la passerelle DataPower API Gateway .

    Pour plus d'informations sur la configuration d'une limite de débit, de rafale ou de nombre dans apigw l'objet, consultez la section « Configuration d'une limite de débit, de rafale ou de nombre » sur le site DataPower API Gateway.

  • plan-default : les limites de débit et de diffusion en rafale à appliquer sont les valeurs par défaut configurées dans le plan auquel l'application appelante est abonnée. Pour plus de détails sur la configuration des limites de débit de plan et de diffusion en rafale par défaut, voir Edition d'un produit brouillon.
    Remarque: L'utilisation de cette option ne désactive pas les règles de limite de débit de préflux automatiques qui peuvent être en place et peut entraîner la répétition de l'application de la limitation de débit. Pour plus d'informations sur les règles de pré-écoulement, consultez la section « Personnalisation des règles de pré-écoulement ».
chaîne
rate-limit Oui1 Si la propriété source est définie sur catalog-named, une liste de noms de limites de débit, tels que définis dans la configuration DataPower API Gateway ,

1Vous devez fournir au moins une limite de débit, de diffusion en rafale ou de nombre.

chaîne
burst-limit Oui2 Si la propriété source est définie sur catalog-named, liste des noms de limite de diffusion en rafale définis dans la configuration DataPower API Gateway .

Si source est définie sur plan-named, il s'agit d'une liste de noms de limites de diffusion en rafale d'assemblage définies dans un plan.

2Vous devez fournir au moins une limite de débit, de diffusion en rafale ou de nombre.

chaîne
count-limit Oui3 Si la propriété source est définie sur catalog-named, liste des noms de limite de nombre tels que définis dans la configuration DataPower API Gateway .

Si source est définie sur plan-named, il s'agit d'une liste de noms de limites de nombre d'assemblage définies dans un plan.

3Vous devez fournir au moins une limite de débit, de diffusion en rafale ou de nombre.

chaîne
operation Non Pour une limite de débit, choisissez l'une des valeurs suivantes :
  • consume : la stratégie réduit le solde des demandes disponibles restantes dans la période de temps définie par la limite de débit associée à la propriété rate-limit.

    La réduction du solde restant équivaut à la valeur résultant de l'expression de pondération définie dans la limite de débit spécifiée.

  • replenish : la stratégie augmente le solde des demandes disponibles restantes dans la période de temps définie par la limite de débit associée à la propriété rate-limit.

    L'augmentation du solde restant équivaut à la valeur résultant de l'expression de pondération définie dans la limite de débit spécifiée.

    L'opération de réapprovisionnement a pour objectif de rétablir un solde restant approprié lorsque le montant calculé par une opération de consommation précédente s'est avéré trop élevé. Par exemple, pour une limite de débit d'assemblage de 100, une opération de consommation avec une pondération de 60 utilise 60 demandes, ce qui laisse un solde de 40 demandes pour cette période. Si l'expression de pondération de l'opération de réapprovisionnement ultérieure est égale à 15, ce qui signifie que l'expression de pondération a calculé que l'utilisation réelle des demandes étaient de 45 uniquement, l'opération de réapprovisionnement augmente la valeur des demandes restantes de 15, le solde s'élevant alors à 55.

    Notez que l'opération de réapprovisionnement ne peut pas augmenter le solde des demandes au-delà de la limite d'origine définie dans le schéma de la limite de débit d'assemblage. Dans notre exemple, une opération de réapprovisionnement ne peut pas réapprovisionner au-delà de 100 demandes. Une opération de réapprovisionnement est ignorée si l'expression de pondération correspond à une valeur inférieure à 1.

    La valeur par défaut est consume.

Pour une limite de nombre, choisissez l'une des valeurs suivantes :
  • inc : le décompte actuel est incrémenté de la valeur qui résulte de l'expression de pondération définie dans la limite de nombre associée à la propriété count-limit.
  • dec : le décompte actuel est décrémenté de la valeur qui résulte de l'expression de pondération définie dans la limite de débit associée à la propriété count-limit.

Par défaut, à la fin de l'assemblage d'API, la limite de nombre est automatiquement décrémentée du montant total incrémenté lors de l'assemblage, moins les opérations de décrément définies dans l'assemblage. Vous n'avez pas besoin de définir explicitement les opérations de décrément, sauf si vous souhaitez que les décréments soient effectués à des points spécifiques de l'assemblage. Toutefois, si la fonction de décrément automatique a été explicitement désactivée dans la configuration de la limite de nombre, vous devez inclure une opération de décrément correspondante, faute de quoi tous les futurs appels seront bloqués lorsque la limite de nombre sera atteinte. Pour plus d'informations sur la configuration d'une limite de nombre, consultez la section « Configuration d'une limite de débit, de rafale ou de nombre » sur le site DataPower API Gateway.

La valeur par défaut est inc.

En ce qui concerne les limites de diffusion en rafale, l'unique valeur possible est consume, ce qui signifie que la limite appliquée est celle définie dans la limite de diffusion en rafale associée à la propriété burst-limit.

chaîne

Exemple


- ratelimit:
    version: 2.0.0
    title: Apply rate and burst limits
    source: catalog-named
    rate-limit:
      - 30perMinute
      - 2000per3Hours
    burst-limit:
      - 5per10Seconds