Esta página aplica-se ao Apigee e ao Apigee Hybrid.
Veja a documentação do
Apigee Edge.
O quê
Use para modificar dinamicamente o número restante de pedidos permitidos pela política de quota de destino. Normalmente, usa esta política para diminuir a contagem de quotas atual da política de quotas de destino, em vez de esperar que a contagem de quotas seja reposta.
Por exemplo, a política de quotas alvo limita um programador a 1000 pedidos por semana. No segundo dia da semana, o programador já atingiu este limite. Use a política Reset Quota para subtrair 500 ao respetivo contador de quotas para permitir 500 pedidos adicionais durante o resto da semana. No final da semana, a política de quotas é reposta e o programador volta a ter 1000 pedidos para a semana.
Esta política é uma política extensível e a utilização desta política pode ter implicações de custo ou utilização, consoante a sua licença do Apigee. Para ver informações sobre os tipos de políticas e as implicações de utilização, consulte Tipos de políticas.
Consulte a Política de Quotas para saber mais sobre a Política de Quotas. Consulte também esta publicação da comunidade sobre a utilização da política de reposição de quotas.
Amostras
Estes exemplos de código de políticas ilustram como repor os contadores de quotas:
Repor contador predefinido
<ResetQuota name="resetQuota">
<Quota name="MyQuotaPolicy">
<Identifier name="_default">
<Allow>100</Allow>
</Identifier>
</Quota>
</ResetQuota>A política Reset Quota especifica a política Quota de destino através do atributo name da etiqueta <Quota>. No exemplo acima, a política MyQuotaPolicy é o destino.
Todas as políticas de reposição de quota requerem a etiqueta <Identifier> para especificar o contador na política de quota a atualizar. Por predefinição, uma política de quotas tem um único contador, a menos que a política de quotas também inclua a etiqueta <Identifier>. Neste exemplo, a política de quota de destino não usa a etiqueta <Identifier>, pelo que especifica o atributo name como _default.
O elemento <Allow> especifica o valor usado para diminuir a contagem atual da quota na política de destino. Neste exemplo, a contagem da quota é reduzida em 100, o que permite mais 100 pedidos à política de quota de destino. Quando a política de quota de destino é reposta, esta alteração é rejeitada.
Abaixo, encontra a definição da política de quotas alvo:
<Quota name="MyQuotaPolicy"> <Interval>5</Interval> <TimeUnit>hour</TimeUnit> <Allow count="100"/> </Quota>
Use uma referência
<ResetQuota name="resetQuota">
<Quota ref="request.header.quotapolicy">
<Identifier name="_default">
<Allow ref="request.header.allowquota" />
</Identifier>
</Quota>
</ResetQuota>Neste exemplo, transmite o nome da política de quotas de destino e a alteração à respetiva contagem de quotas como cabeçalhos no pedido. Em seguida, pode fazer referência às variáveis de fluxo que contêm estes valores na política de reposição de quota.
Especifique o identificador
<ResetQuota name="resetQuota">
<Quota name="QuotaPolicy">
<Identifier ref="request.header.clientId">
<Allow>100</Allow>
</Identifier>
</Quota>
</ResetQuota>Se a política de quota de destino especificar a etiqueta <Identifier>, pode especificar o mesmo valor para a etiqueta <Identifier> da política de reposição de quota para atualizar uma contagem de quota específica. Repare como a etiqueta <Identifier> na política de quota de destino abaixo corresponde ao valor especificado para a política de quota de reposição:
<Quota name="QuotaPolicy"> <Identifier ref="request.header.clientId"/> <Interval>5</Interval> <TimeUnit>hour</TimeUnit> <Allow count="100"/> </Quota>
Referência do elemento
A referência do elemento descreve os elementos e os atributos da política de reposição de quotas.
<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 <ResetQuota>
<ResetQuota async="false" continueOnError="false" enabled="true" name="Reset-Quota-1">
A tabela seguinte descreve os atributos comuns a todos os elementos principais de políticas:
| Atributo | Descrição | Predefinição | Presença |
|---|---|---|---|
name |
O nome interno da política. O valor do atributo Opcionalmente, use o elemento |
N/A | Obrigatória |
continueOnError |
Definido como Definido como |
falso | Opcional |
enabled |
Defina como Defina como |
verdadeiro | Opcional |
async |
Este atributo foi descontinuado. |
falso | Descontinuado |
Elemento <DisplayName>
Use em conjunto com o atributo name para etiquetar a política no editor de proxy da IU de gestão com um nome diferente em linguagem natural.
<DisplayName>Policy Display Name</DisplayName>
| Predefinição |
N/A Se omitir este elemento, é usado o valor do atributo |
|---|---|
| Presença | Opcional |
| Tipo | String |
Elemento <Quota>
Identifica a política de quotas de destino cujo contador deve ser atualizado.
<Quota name="quotaName" ref="request.header.quotapolicy">
<Identifier name="identifierName" ref="request.header.identifier">
<Allow>100</Allow>
</Identifier>
</Quota>| Predefinição: | N/A |
| Presença: | Obrigatória |
| Tipo: | N/A |
Atributos
| Atributo | Descrição | Predefinição | Presença |
|---|---|---|---|
| nome |
Especifica o nome da política de quotas de destino. |
N/A | Opcional |
| ref | Uma variável de fluxo que contém o nome da política de quotas de destino. Se ref e name forem especificados, ref tem prioridade. Se ref não for resolvido no momento da execução, é usado name. | N/A | Opcional |
Elemento <Quota>/<Identifier>
Variável usada para identificar exclusivamente o contador se a política de quota de destino especificar a etiqueta <Identifier>.
<Quota name="quotaName">
<Identifier name="identifierName" ref="request.header.identifier">
<Allow>100</Allow>
</Identifier>
</Quota>| Predefinição: | N/A |
| Presença: | Obrigatória |
| Tipo: | String |
Atributos
| Atributo | Descrição | Predefinição | Presença |
|---|---|---|---|
| nome |
Especifica o nome do identificador de contagem na política de quotas de destino. Para uma política de quota que não use a etiqueta <Identifier>, especifique _default. |
N/A | Opcional |
| ref |
Uma variável de fluxo que contém o nome do identificador de contagem na política de quota de destino. Se ref e name forem especificados, ref tem prioridade. Se ref não for resolvido no momento da execução, é usado name. |
N/A | Opcional |
Elemento <Quota>/<Identifier>/<Allow>
Especifica o valor para diminuir o contador de quota. Tem de especificar <Allow>. Caso contrário, a política não modifica a quota.
<Identifier name="identifierName" ref="request.header.identifier"> <Allow ref="request.header.allowquota">100</Allow> </Identifier>
| Predefinição: | N/A |
| Presença: | Obrigatória |
| Tipo: | Número inteiro |
Atributos
| Atributo | Descrição | Predefinição | Presença |
|---|---|---|---|
| ref |
Uma variável de fluxo que contém a alteração à contagem de quotas na política de quotas de destino. |
N/A | Opcional |
Elemento <Quota>/<Identifier>/<Class>
Especifica a classe para a qual o contador de quota é atualizado. Para mais informações sobre a utilização da classe com a política de quotas, consulte o artigo Política de quotas.
<Identifier name="_default">
<Class ref="request.header.classIdentifier">
<Allow>200</Allow>
</Class>
</Identifier>| Predefinição: | N/A |
| Presença: | Opcional |
| Tipo: | N/A |
Atributos
| Atributo | Descrição | Predefinição | Presença |
|---|---|---|---|
| ref |
Referência à variável de fluxo que contém a classe de quota a atualizar. |
N/A | Opcional |
Referência de erro
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 |