Política ResetQuota

Estás viendo la documentación de Apigee Edge.
Ve a 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 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.

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.

N/A Obligatorio
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.

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

falso Obsoleta

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

N/A

Si omites este elemento, se usa el valor del atributo name de la política.

Presencia Opcional
Tipo String

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

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

Referencia a la variable de flujo que contiene la clase de cuota que se 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 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.
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.
policies.resetquota.FailedToResolveRLPolicy 500 The variable referenced by the ref attribute in the <Quota> element cannot be resolved.

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.

Esquemas

Temas relacionados

Política de cuotas