Esta página se aplica a Apigee y Apigee Hybrid.
Consulta la documentación de
Apigee Edge.
Qué
Se usa para modificar de forma dinámica el número restante de solicitudes permitidas por la política de cuotas de destino. Normalmente, esta política se usa para reducir el recuento de cuotas actual de la política de cuotas de destino en lugar de esperar a que se restablezca.
Por ejemplo, la política de cuotas de destino limita a un desarrollador a 1000 solicitudes por semana. El desarrollador ya ha alcanzado este límite el segundo día de la semana. Usa la política Reset Quota para restar 500 al contador de cuotas y permitir 500 solicitudes adicionales durante el resto de la semana. Al final de la semana, la política de cuotas se restablece y el desarrollador vuelve a tener 1000 solicitudes para la semana.
Esta política es una política extensible y su uso puede tener implicaciones en cuanto a costes o utilización, en función de tu licencia de Apigee. Para obtener información sobre los tipos de políticas y las implicaciones de uso, consulta Tipos de políticas.
Consulta la política de cuotas para obtener más información. Consulta también esta publicación de la comunidad sobre cómo usar la política Reset Quota.
Ejemplos
Estos ejemplos de código de política muestran cómo restablecer los contadores de cuota:
Restablecer contador predeterminado
<ResetQuota name="resetQuota"> <Quota name="MyQuotaPolicy"> <Identifier name="_default"> <Allow>100</Allow> </Identifier> </Quota> </ResetQuota>
La política Reset Quota especifica la política de cuota de destino mediante el atributo name de la etiqueta <Quota>. En el ejemplo anterior, la política MyQuotaPolicy es el objetivo.
Todas las políticas Reset Quota requieren la etiqueta <Identifier> para especificar el contador de la política Quota que se va a actualizar. De forma predeterminada, una política de cuotas tiene un solo contador, a menos que también incluya la etiqueta <Identifier>. En este ejemplo, la política de cuota de destino no usa la etiqueta <Identifier>, por lo que debes especificar el atributo name como _default.
El elemento <Allow> especifica el valor que se usa para reducir el recuento de cuota actual en la política de destino. En este ejemplo, el recuento de cuotas se reduce en 100 para permitir 100 solicitudes más a la política de cuotas de destino. Cuando se restablece la política de cuota de destino, este cambio se descarta.
A continuación, se muestra la definición de la política de cuotas de destino:
<Quota name="MyQuotaPolicy"> <Interval>5</Interval> <TimeUnit>hour</TimeUnit> <Allow count="100"/> </Quota>
Usar una referencia
<ResetQuota name="resetQuota"> <Quota ref="request.header.quotapolicy"> <Identifier name="_default"> <Allow ref="request.header.allowquota" /> </Identifier> </Quota> </ResetQuota>
En este ejemplo, se pasa el nombre de la política de cuota de destino y el cambio en su recuento de cuota como encabezados en la solicitud. Después, puede hacer referencia a las variables de flujo que contienen estos valores en la política Reset Quota.
Especificar el identificador
<ResetQuota name="resetQuota"> <Quota name="QuotaPolicy"> <Identifier ref="request.header.clientId"> <Allow>100</Allow> </Identifier> </Quota> </ResetQuota>
Si la política de cuotas de destino especifica la etiqueta <Identifier>, puedes especificar el mismo valor en la etiqueta <Identifier> de la política de cuotas de restablecimiento para actualizar un recuento de cuotas específico. Fíjate en cómo la etiqueta <Identifier> de la política de cuota de destino que se muestra a continuación coincide con el valor especificado en la política de cuota de restablecimiento:
<Quota name="QuotaPolicy"> <Identifier ref="request.header.clientId"/> <Interval>5</Interval> <TimeUnit>hour</TimeUnit> <Allow count="100"/> </Quota>
Referencia de elemento
En la referencia de elementos se describen los elementos y atributos de la política Reset Quota.
<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>
Atributos de <ResetQuota>
<ResetQuota async="false" continueOnError="false" enabled="true" name="Reset-Quota-1">
En la siguiente tabla se describen los atributos que son comunes a todos los elementos superiores de la política:
Atributo | Descripción | Predeterminado | Presencia |
---|---|---|---|
name |
El nombre interno de la política. El valor del atributo Opcionalmente, usa el elemento |
N/A | Obligatorio |
continueOnError |
Asigna el valor Asigna el valor |
falso | Opcional |
enabled |
Asigna el valor Selecciona |
true | Opcional |
async |
Este atributo está obsoleto. |
falso | Obsoleto |
Elemento <DisplayName>
Úsalo junto con el atributo name
para etiquetar la política en el editor de proxy de la interfaz de gestión con un nombre diferente en lenguaje natural.
<DisplayName>Policy Display Name</DisplayName>
Predeterminado |
N/A Si omite este elemento, se usará el valor del atributo |
---|---|
Presencia | Opcional |
Tipo | Cadena |
Elemento <Quota>
Identifica la política de cuota de destino cuyo contador se debe actualizar.
<Quota name="quotaName" ref="request.header.quotapolicy"> <Identifier name="identifierName" ref="request.header.identifier"> <Allow>100</Allow> </Identifier> </Quota>
Valor predeterminado: | N/A |
Presencia: | Obligatorio |
Tipo: | N/A |
Atributos
Atributo | Descripción | Predeterminado | Presencia |
---|---|---|---|
name |
Especifica el nombre de la política de cuota de destino. |
N/A | Opcional |
ref | Variable de flujo que contiene el nombre de la política de cuota de destino. Si se especifican tanto ref como name, ref tiene prioridad. Si ref no se resuelve en el tiempo de ejecución, se usa name. | N/A | Opcional |
Elemento <Quota>/<Identifier>
Variable que se usa para identificar de forma exclusiva el contador si la política de cuotas de destino especifica la etiqueta <Identifier>.
<Quota name="quotaName"> <Identifier name="identifierName" ref="request.header.identifier"> <Allow>100</Allow> </Identifier> </Quota>
Valor predeterminado: | N/A |
Presencia: | Obligatorio |
Tipo: | Cadena |
Atributos
Atributo | Descripción | Predeterminado | Presencia |
---|---|---|---|
name |
Especifica el nombre del identificador de recuento en la política de cuota de destino. En el caso de una política de cuota que no utilice la etiqueta <Identifier>, especifica _default. |
N/A | Opcional |
ref |
Variable de flujo que contiene el nombre del identificador de recuento en la política de cuota de destino. Si se especifican tanto ref como name, ref tiene prioridad. Si ref no se resuelve en tiempo de ejecución, se usa name. |
N/A | Opcional |
Elemento <Quota>/<Identifier>/<Allow>
Especifica la cantidad en la que se debe reducir el contador de cuota. Debe especificar <Allow>. De lo contrario, la política no modificará la cuota.
<Identifier name="identifierName" ref="request.header.identifier"> <Allow ref="request.header.allowquota">100</Allow> </Identifier>
Valor predeterminado: | N/A |
Presencia: | Obligatorio |
Tipo: | Entero |
Atributos
Atributo | Descripción | Predeterminado | Presencia |
---|---|---|---|
ref |
Variable de flujo que contiene el cambio en el recuento de cuotas de la política de cuotas de destino. |
N/A | Opcional |
Elemento <Quota>/<Identifier>/<Class>
Especifica la clase para la que se actualiza el contador de cuota. Para obtener más información sobre cómo usar la clase con la política de cuota, consulta el artículo Política de cuota.
<Identifier name="_default"> <Class ref="request.header.classIdentifier"> <Allow>200</Allow> </Class> </Identifier>
Valor predeterminado: | N/A |
Presencia: | Opcional |
Tipo: | N/A |
Atributos
Atributo | Descripción | Predeterminado | Presencia |
---|---|---|---|
ref |
Referencia a la variable de flujo que contiene la clase de cuota que se va a actualizar. |
N/A | Opcional |
Referencia de errores
This section describes the fault codes and error messages that are returned and fault variables that are set by Apigee 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 ResetQuota 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 ResetQuota 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 ResetQuota Policy is not an integer,
then the deployment of the API proxy fails.
|
build |