Política ResetQuota

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

Consulta la documentación de Apigee Edge.

Icono de política

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 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 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

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