Política ResetQuota

Esta página se aplica a Apigee y Apigee Hybrid.

Consulta la documentación de Apigee Edge.

ícono de política

Qué

Se usa para modificar de forma dinámica la cantidad restante de solicitudes que permite la política Quota de destino. En general, se usa esta política para disminuir la cantidad de cuotas actual de la política Quota de destino en lugar de esperar a que se restablezca la cantidad de cuota.

Por ejemplo, la política Quota de destino limita a un desarrollador a 1,000 solicitudes por semana. En el segundo día de la semana, el desarrollador ya alcanzó este límite. Usa la política Reset Quota a fin de restar 500 solicitudes del contador de cuotas, para permitir 500 solicitudes adicionales durante el resto de la semana. Al final de la semana, se restablece la política Quota y el desarrollador vuelve a tener 1,000 solicitudes para la semana.

Esta política es una política extensible, y el uso de esta política puede tener implicaciones de costo o uso, según tu licencia de Apigee. Para obtener información sobre los tipos de políticas y sus implicaciones de uso, consulta Tipos de políticas.

Consulta la Política Quota para obtener más información sobre esa política. Consulta también esta publicación de la comunidad sobre cómo usar la política Reset Quota.

Ejemplos

En estas muestras de código de políticas, se ilustra cómo restablecer los contadores de cuota:

Restablece un 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 Quota de destino con el atributo name de la etiqueta <Quota>. En el ejemplo anterior, la política MyQuotaPolicy es el destino.

Todas las políticas Reset Quota requieren la etiqueta <Identifier> para especificar el recuento en la política Quota que se actualizará. Según la configuración predeterminada, una política Quota tiene un solo contador, a menos que la política también incluya la etiqueta <Identifier>. En este ejemplo, la política Quota 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 disminuir la cantidad de cuotas actual en la política de destino. En este ejemplo, la cantidad de cuotas disminuye en 100, a fin de permitir 100 solicitudes más para la política Quota de destino. Cuando se restablece la política Quota de destino, este cambio se descarta.

A continuación, se muestra la definición de la política Quota de destino:

<Quota name="MyQuotaPolicy">
  <Interval>5</Interval>
  <TimeUnit>hour</TimeUnit>
  <Allow count="100"/>
</Quota>

Usa una referencia

<ResetQuota name="resetQuota">
   <Quota ref="request.header.quotapolicy">
      <Identifier name="_default">
         <Allow ref="request.header.allowquota" />
      </Identifier>
   </Quota>
</ResetQuota>

En este ejemplo, pasas el nombre de la política Quota de destino y el cambio en el recuento de cuotas como encabezados en la solicitud. Luego, puedes hacer referencia a las variables de flujo que contienen estos valores en la política Reset Quota.

Especifica el identificador

<ResetQuota name="resetQuota">
   <Quota name="QuotaPolicy">
      <Identifier ref="request.header.clientId">
         <Allow>100</Allow>
      </Identifier>
   </Quota>
</ResetQuota>

Si la política Quota de destino especifica la etiqueta <Identifier>, puedes especificar el mismo valor en la etiqueta <Identifier> de la política Reset Quota para actualizar un recuento de cuotas específico. Observa cómo la etiqueta <Identifier> de la política Quota de destino que se muestra a continuación coincide con el valor especificado en la política Reset Quota:

<Quota name="QuotaPolicy">
  <Identifier ref="request.header.clientId"/> 
  <Interval>5</Interval>
  <TimeUnit>hour</TimeUnit>
  <Allow count="100"/>
</Quota>

Referencia del elemento

La referencia del elemento describe 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 name puede contener letras, números, espacios, guiones, guiones bajos y puntos. Este valor no puede superar los 255 caracteres.

Opcionalmente, usa el elemento <DisplayName> para etiquetar la política en el editor de proxy de la interfaz de gestión con un nombre diferente en lenguaje natural.

N/A Obligatorio
continueOnError

Asigna el valor false para devolver un error cuando falle una política. Este es el comportamiento esperado de la mayoría de las políticas.

Asigna el valor true para que la ejecución del flujo continúe incluso después de que falle una política. Consulta también:

falso Opcional
enabled

Asigna el valor true para aplicar la política.

Selecciona false para desactivar la política. La política no se aplicará aunque siga adjunta a un flujo.

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 name de la política.

Presencia Opcional
Tipo Cadena

Elemento <Quota>

Identifica la política Quota 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>
Predeterminado: N/A
Presencia: Obligatorio
Tipo: N/A

Atributos

Atributo Descripción Predeterminado Presence
name

Especifica el nombre de la política Quota de destino.

N/A Opcional
ref Una variable de flujo que contiene el nombre de la política Quota de destino. Si se especifican ref y name, entonces, ref tiene prioridad. Si ref no se resuelve en el entorno de ejecución, se usa name. N/A Opcional

Elemento <Quota>/<Identifier>

Es una variable que se usa para identificar de forma única el contador si la política Quota de destino especifica la etiqueta <Identifier>.

<Quota name="quotaName">
   <Identifier name="identifierName" ref="request.header.identifier">
      <Allow>100</Allow>
   </Identifier>
</Quota>
Predeterminado: N/A
Presencia: Obligatorio
Tipo: String

Atributos

Atributo Descripción Predeterminado Presence
name

Especifica el nombre del identificador de recuento en la política Quota de destino. Para una política Quota que no use la etiqueta <Identifier>, especifica _default.

N/A Opcional
ref

Una variable de flujo que contiene el nombre del identificador de recuento en la política Quota de destino. Si se especifican ref y name, entonces, ref tiene prioridad. Si ref no se resuelve en el entorno de ejecución, se usa name.

N/A Opcional

Elemento <Quota>/<Identifier>/<Allow>

Especifica el importe que se reducirá en el contador de cuotas. Debes especificar <Allow>, de lo contrario, la política no modifica la cuota.

<Identifier name="identifierName" ref="request.header.identifier">
   <Allow ref="request.header.allowquota">100</Allow>
</Identifier>
Predeterminado: N/A
Presencia: Obligatorio
Tipo: Entero

Atributos

Atributo Descripción Predeterminado Presence
ref

Una variable de flujo que contiene el cambio en el recuento de cuotas en la política Quota de destino.

N/A Opcional

Elemento <Quota>/<Identifier>/<Class>

Especifica la clase para la que se actualiza el contador de cuotas. Para obtener más información sobre cómo usar la clase con la política de cuotas, consulta Política de cuotas.

<Identifier name="_default">
   <Class ref="request.header.classIdentifier">
     <Allow>200</Allow>
   </Class>
</Identifier>
Predeterminado: N/A
Presencia: Opcional
Tipo: N/A

Atributos

Atributo Descripción Predeterminado Presence
ref

Referencia a la variable de flujo que contiene la clase de cuota que se actualizará.

N/A Opcional

Referencia de errores

En esta sección se describen los códigos de error y los mensajes de error que devuelve Apigee, así como las variables de error que define, cuando esta política activa un error. Es importante que conozcas esta información si vas a desarrollar reglas de errores para gestionarlos. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo gestionar los fallos.

Errores de tiempo de ejecución

Estos errores pueden producirse cuando se ejecuta la política.

Código de fallo Estado de HTTP Causa Solucionar
policies.resetquota.InvalidRLPolicy 500 La política Quota especificada en el elemento <Quota> de la política ResetQuota no se ha definido en el proxy de API y, por lo tanto, no está disponible durante el flujo. El elemento <Quota> es obligatorio e identifica la política Quota de destino cuyo contador se debe actualizar mediante la política ResetQuota.
policies.resetquota.FailedToResolveAllowCountRef N/A No se puede resolver la referencia a la variable que contiene el número de elementos permitidos en el elemento <Allow> de la política. Este elemento es obligatorio y especifica la cantidad en la que se debe reducir el contador de cuota.
policies.resetquota.FailedToResolveRLPolicy 500 No se puede resolver la variable a la que hace referencia el atributo ref del elemento <Quota>.

Errores de implementación

Estos errores pueden producirse al implementar un proxy que contenga esta política.

Nombre del error Causa Solucionar
InvalidCount Si el valor de recuento especificado en el elemento <Allow> de la política ResetQuota no es un número entero, se producirá un error al implementar el proxy de API.

Esquemas

Temas relacionados

Política de cuotas