<ph type="x-smartling-placeholder"></ph>
Vous consultez la documentation Apigee Edge.
Accédez à la page
Documentation sur Apigee X. En savoir plus
Quoi
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.
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 |
ND | Valeur |
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 |
ND 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
This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.
Runtime errors
These errors can occur when the policy executes.
| Fault code | HTTP status | Cause | Fix |
|---|---|---|---|
policies.resetquota.InvalidRLPolicy |
500 | The Quota policy specified in the <Quota> element of the Reset Quota policy
is not defined in the API proxy and thus is not available during the flow. The <Quota>
element is mandatory and identifies the target Quota policy whose counter should be updated
through the Reset Quota policy. |
build |
policies.resetquota.FailedToResolveAllowCountRef |
N/A | The reference to the variable containing the allow count in the <Allow> element
of the policy cannot be resolved to a value. This element is mandatory and specifies the amount
to decrease the quota counter. |
build |
policies.resetquota.FailedToResolveRLPolicy |
500 | The variable referenced by the ref attribute in the <Quota> element
cannot be resolved. |
build |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Cause | Fix |
|---|---|---|
InvalidCount |
If the count value specified in the <Allow> element of the Reset Quota Policy is not an integer,
then the deployment of the API proxy fails.
|
build |