Cette page s'applique à Apigee et à Apigee hybrid.
Consultez la documentation d'Apigee Edge.
Événement
Permet de modifier de façon dynamique le nombre restant de requêtes autorisées par la règle de quota cible. En règle générale, cette règle vous permet de réduire le quota actuel de la règle de quota cible, plutôt que d'attendre la réinitialisation du nombre de quotas.
Par exemple, la règle de quota cible limite un développeur à 1 000 requêtes par semaine. Le deuxième jour de la semaine, le développeur a déjà atteint la limite. Utilisez la règle de réinitialisation du quota pour soustraire 500 à son compteur de quotas, afin d'autoriser 500 requêtes supplémentaires pour le reste de la semaine. À la fin de la semaine, la règle de quota est réinitialisée et le développeur retourne à 1 000 requêtes la semaine.
Cette règle est une règle extensible et son utilisation peut avoir des conséquences sur le coût ou l'utilisation, en fonction de votre licence Apigee. Pour en savoir plus sur les types de règles et les implications en termes d'utilisation, consultez la section Types de règles.
Pour en savoir plus sur les règles liées aux quotas, consultez la page Règles de quotas. Consultez également ce post destiné à la communauté concernant l'utilisation de la règle de réinitialisation des quotas ResetQuota.
Exemples
Les exemples de code suivants montrent comment réinitialiser les compteurs de quotas :
Réinitialiser le compteur par défaut
<ResetQuota name="resetQuota"> <Quota name="MyQuotaPolicy"> <Identifier name="_default"> <Allow>100</Allow> </Identifier> </Quota> </ResetQuota>
La règle de réinitialisation du quota spécifie la règle de quota cible à l'aide de l'attribut name du tag <Quota>. Dans l'exemple ci-dessus, la règle MyQuotaPolicy est la cible.
Toutes les règles de réinitialisation du quota nécessitent le tag <Identifier> pour spécifier le compteur dans la règle de quotas à mettre à jour. Par défaut, une règle de quota comporte un seul compteur, sauf si elle inclut également le tag <Identifier>. Dans cet exemple, la règle de quota cible n'utilise pas la paire valeur/clé <Identifier>, vous devez donc spécifier l'attribut name en tant que _default.
L'élément <Allow> spécifie la valeur utilisée pour diminuer le nombre de quotas actuel sur la règle cible. Dans cet exemple, le nombre de quotas est réduit de 100 pour permettre l'envoi de 100 autres requêtes à la règle de quota cible. Lorsque la règle de quota cible est réinitialisée, cette modification est supprimée.
Vous trouverez ci-dessous la définition de la règle de quota cible :
<Quota name="MyQuotaPolicy"> <Interval>5</Interval> <TimeUnit>hour</TimeUnit> <Allow count="100"/> </Quota>
Utiliser une référence
<ResetQuota name="resetQuota"> <Quota ref="request.header.quotapolicy"> <Identifier name="_default"> <Allow ref="request.header.allowquota" /> </Identifier> </Quota> </ResetQuota>
Dans cet exemple, vous transmettez le nom de la règle de quota cible et la modification de son nombre de quotas, en tant qu'en-têtes dans la requête. Vous pouvez ensuite référencer les variables de flux contenant ces valeurs dans la règle de réinitialisation des quotas.
Spécifier l'identifiant
<ResetQuota name="resetQuota"> <Quota name="QuotaPolicy"> <Identifier ref="request.header.clientId"> <Allow>100</Allow> </Identifier> </Quota> </ResetQuota>
Si la règle de quota cible spécifie le tag <Identifier>, vous pouvez spécifier la même valeur dans le tag <Identifier> de la règle de réinitialisation des quotas pour mettre à jour un nombre de quotas spécifique. Notez que le tag <Identifier> de la règle de quota cible ci-dessous correspond à la valeur spécifiée dans la règle de réinitialisation des quotas :
<Quota name="QuotaPolicy"> <Identifier ref="request.header.clientId"/> <Interval>5</Interval> <TimeUnit>hour</TimeUnit> <Allow count="100"/> </Quota>
Documentation de référence des éléments
La référence d'élément décrit les éléments et les attributs de la règle de réinitialisation des quotas.
<ResetQuota async="false" continueOnError="false" enabled="true" name="Reset-Quota-1"> <DisplayName>Reset Quota 1</DisplayName> <Quota name="quotaName" ref="request.header.quotapolicy"> <Identifier name="identifierName" ref="request.header.identifier"> <Class ref="request.header.classIdentifier" /> <Allow>100</Allow> </Identifier> </Quota> </ResetQuota>
Attributs <ResetQuota>
<ResetQuota async="false" continueOnError="false" enabled="true" name="Reset-Quota-1">
Le tableau suivant décrit les attributs communs à tous les éléments parents des règles :
Attribut | Description | Par défaut | Présence |
---|---|---|---|
name |
Nom interne de la règle. La valeur de l'attribut Vous pouvez également utiliser l'élément |
N/A | Obligatoire |
continueOnError |
Définissez sur Définissez sur |
faux | Facultatif |
enabled |
Définissez sur Définissez sur |
vrai | Facultatif |
async |
Cet attribut est obsolète. |
faux | Obsolète |
Élément <DisplayName>
Utilisez-le, en plus de l'attribut name
, pour appliquer un libellé à la règle dans l'éditeur de proxys de l'interface de gestion en utilisant un nom différent, en langage naturel.
<DisplayName>Policy Display Name</DisplayName>
Par défaut |
N/A Si vous omettez cet élément, la valeur de l'attribut |
---|---|
Présence | Facultatif |
Type | Chaîne |
Élément <Quota>
Identifie la règle de quota cible dont le compteur doit être mis à jour.
<Quota name="quotaName" ref="request.header.quotapolicy"> <Identifier name="identifierName" ref="request.header.identifier"> <Allow>100</Allow> </Identifier> </Quota>
Valeur par défaut : | ND |
Présence : | Requis |
Type : | ND |
Attributs
Attribut | Description | Par défaut | Présence |
---|---|---|---|
nom |
Spécifie le nom de la règle de quota cible. |
ND | Facultative |
ref | Une variable de flux contenant le nom de la règle de quota cible. Si les options ref et name sont spécifiées, ref obtient la priorité. Si ref n'est pas renvoyé au moment de l'exécution, name est utilisé. | ND | Facultative |
Élément <Quota>/<Identifier>
Variable utilisée pour identifier de manière unique le compteur si la règle de quota cible spécifie le tag <Identifier>.
<Quota name="quotaName"> <Identifier name="identifierName" ref="request.header.identifier"> <Allow>100</Allow> </Identifier> </Quota>
Valeur par défaut : | ND |
Présence : | Requis |
Type : | Chaîne |
Attributs
Attribut | Description | Par défaut | Présence |
---|---|---|---|
nom |
Spécifie le nom de l'identifiant de comptage dans la règle de quota cible. Pour une règle de quota qui n'utilise pas le tag <Identifier>, spécifiez _default. |
ND | Facultative |
ref |
Une variable de flux contenant le nom de l'identifiant de comptage dans la règle de quota cible. Si les options ref et name sont spécifiées, ref obtient la priorité. Si ref n'est pas renvoyé au moment de l'exécution, name est utilisé. |
ND | Facultative |
Élément <Quota>/<Identifier>/<Allow>
Indique le montant pour diminuer le compteur de quotas. Vous devez spécifier <Allow>, sinon la règle ne modifie pas le quota.
<Identifier name="identifierName" ref="request.header.identifier"> <Allow ref="request.header.allowquota">100</Allow> </Identifier>
Valeur par défaut : | ND |
Présence : | Requis |
Type : | Entier |
Attributs
Attribut | Description | Par défaut | Présence |
---|---|---|---|
ref |
Une variable de flux qui contient la modification du nombre de quotas dans la règle de quota cible. |
ND | Facultative |
Élément <Quota>/<Identifier>/<Class>
Spécifie la classe pour laquelle le compteur de quotas est mis à jour. Pour en savoir plus sur l'utilisation d'une classe avec les règles de quotas, consultez la page Règles de quotas.
<Identifier name="_default"> <Class ref="request.header.classIdentifier"> <Allow>200</Allow> </Class> </Identifier>
Valeur par défaut : | ND |
Présence : | Facultatif |
Type : | ND |
Attributs
Attribut | Description | Par défaut | Présence |
---|---|---|---|
ref |
Référence à la variable de flux contenant la classe de quota à mettre à jour. |
ND | Facultative |
Informations de référence sur les erreurs
Cette section décrit les codes d'erreur et les messages d'erreur renvoyés et les variables d'erreur définies par Apigee lorsque cette règle déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Cause | Corriger |
---|---|---|---|
policies.resetquota.InvalidRLPolicy |
500 |
La règle Quota spécifiée dans l'élément <Quota> de la règle ResetQuota n'est pas définie dans le proxy d'API et n'est donc pas disponible pendant le flux. L'élément <Quota> est obligatoire et identifie la règle Quota cible dont le compteur doit être mis à jour via la règle ResetQuota . |
build |
policies.resetquota.FailedToResolveAllowCountRef |
ND | La référence à la variable contenant le nombre autorisé dans l'élément <Allow> de la règle ne peut pas être transformée en valeur. Cet élément est obligatoire et spécifie le montant nécessaire pour diminuer le compteur de quotas. |
build |
policies.resetquota.FailedToResolveRLPolicy |
500 |
La variable référencée par l'attribut ref dans l'élément <Quota> ne peut pas être résolue. |
build |
Erreurs de déploiement
Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.
Nom de l'erreur | Cause | Corriger |
---|---|---|
InvalidCount |
Si le nombre spécifié dans l'élément <Allow> de la règle ResetQuota n'est pas un entier, le déploiement du proxy d'API échoue.
|
build |