Política ResetQuota

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

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.

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 principales de las políticas:

Atributo Descripción Predeterminada 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.

De forma opcional, usa el elemento <DisplayName> para etiquetar la política en el editor de proxy de la IU de administración con un nombre de lenguaje natural diferente.

No disponible Obligatorias
continueOnError

Configúralo como false para mostrar un error cuando una política falla. Este es el comportamiento previsto para la mayoría de las políticas.

Configúralo como true para continuar con la ejecución del flujo incluso después de que una política falle.

false Opcional
enabled

Configúralo como true para aplicar la política.

Configúralo como false para desactivar la política. La política no se aplicará incluso si permanece adjunta a un flujo.

true Opcional
async

Este atributo dejó de estar disponible.

false Funciones obsoletas

Elemento <DisplayName>

Se usan además del atributo name para etiquetar la política en el editor de proxy de la IU de administración con un nombre de lenguaje natural diferente.

<DisplayName>Policy Display Name</DisplayName>
Predeterminada

No disponible

Si omites este elemento, se usa 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: No disponible
Presencia: Obligatorias
Tipo: No disponible

Atributos

Atributo Descripción Predeterminada Presencia
name

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

No disponible 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. No disponible Opcional

Elemento <Quota>/<Identifier>

Variable que se usa para identificar el contador de forma única 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>
Predeterminado: No disponible
Presencia: Obligatorias
Tipo: Cadena

Atributos

Atributo Descripción Predeterminada Presencia
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.

No disponible 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.

No disponible 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: No disponible
Presencia: Obligatorias
Tipo: Número entero

Atributos

Atributo Descripción Predeterminada Presencia
ref

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

No disponible 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: No disponible
Presencia: Opcional
Tipo: No disponible

Atributos

Atributo Descripción Predeterminada Presencia
ref

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

No disponible Opcional

Referencia de errores

En esta sección, se describen los códigos y mensajes de error que se muestran y las variables de fallas que establece Edge cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.

Errores de entorno de ejecución

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

Código de falla Estado de HTTP Causa Corregir
policies.resetquota.InvalidRLPolicy 500 La política de cuotas especificada en el elemento <Quota> de la política de Restablecer cuota no está definida en el proxy de API y, por lo tanto, no está disponible durante el flujo. El elemento <Quota> es obligatorio y, además, identifica la política de cuotas de destino cuyo contador se debe actualizar mediante la política de Restablecer cuota.
policies.resetquota.FailedToResolveAllowCountRef No disponible La referencia a la variable que contiene el recuento permitido en el elemento <Allow> de la política no se puede resolver en un valor. Este elemento es obligatorio y especifica el importe para reducir el recuento de cuotas.
policies.resetquota.FailedToResolveRLPolicy 500 No se puede resolver la variable a la que hace referencia el atributo ref en el elemento <Quota>.

Errores en la implementación

Estos errores pueden generarse cuando implementas un proxy que contiene esta política.

Nombre del error Causa Corregir
InvalidCount Si el valor de recuento especificado en el elemento <Allow> de la política de restablecimiento de cuotas no es un número entero, la implementación del proxy de API falla.

Esquemas

Temas relacionados

Política de cuotas