Esta página se aplica à Apigee e à Apigee híbrida.
Confira a documentação da Apigee Edge.
O que
Use para modificar dinamicamente o número restante de solicitações permitidas pela política de cotas de destino. Normalmente, essa política é usada para reduzir a contagem atual de cotas da política de cotas de destino, em vez de aguardar a redefinição da contagem de cotas.
Por exemplo, a política de cotas de destino limita um desenvolvedor a 1.000 solicitações por semana. No segundo dia da semana, o desenvolvedor já atingiu esse limite. Use a política Reset Quota para subtrair 500 do contador de cotas para permitir mais 500 solicitações para o restante da semana. No final da semana, a política de cotas é redefinida, e o desenvolvedor retorna a 1.000 solicitações da semana.
Esta é uma política extensível. O uso dela pode ter implicações no custo ou na utilização, dependendo da sua licença da Apigee. Para informações sobre tipos de política e implicações de uso, consulte Tipos de política.
Consulte Política de cotas para saber mais sobre a política de cotas. Consulte também esta postagem da comunidade (em inglês) sobre como usar a política de redefinição de cota.
Amostras
Estes exemplos de código de política mostram como redefinir contadores de cotas:
Redefinir contador padrão
<ResetQuota name="resetQuota"> <Quota name="MyQuotaPolicy"> <Identifier name="_default"> <Allow>100</Allow> </Identifier> </Quota> </ResetQuota>
A política Reset Quota especifica a política de cotas de destino usando o atributo name da tag <Quota>. No exemplo acima, a política MyQuotaPolicy é o destino.
Todas as políticas de redefinição de cota exigem que a tag <Identifier> especifique o contador na política de cotas a ser atualizada. Por padrão, uma política de cotas tem um único contador, a menos que a política de cotas também inclua a tag <Identifier>. Neste exemplo, a política de cota de destino não usa a tag <Identifier>. Portanto, você especifica o atributo name como _default.
O elemento <Allow> especifica o valor usado para diminuir a contagem de cotas atual na política de destino. Neste exemplo, a contagem de cota é reduzida em 100 para permitir 100 solicitações a mais na política de cota de destino. Quando a política de cotas de destino for redefinida, essa alteração será descartada.
Veja abaixo a definição da política de cotas de destino:
<Quota name="MyQuotaPolicy"> <Interval>5</Interval> <TimeUnit>hour</TimeUnit> <Allow count="100"/> </Quota>
Usar uma referência
<ResetQuota name="resetQuota"> <Quota ref="request.header.quotapolicy"> <Identifier name="_default"> <Allow ref="request.header.allowquota" /> </Identifier> </Quota> </ResetQuota>
Neste exemplo, você transmite o nome da política de cotas de destino e a alteração para sua contagem de cotas, como cabeçalhos na solicitação. Em seguida, você pode referenciar as variáveis de fluxo que contêm esses valores na política de redefinição de cota.
Especificar o identificador
<ResetQuota name="resetQuota"> <Quota name="QuotaPolicy"> <Identifier ref="request.header.clientId"> <Allow>100</Allow> </Identifier> </Quota> </ResetQuota>
Se a política de cota de destino especificar a tag <Identifier>, será possível especificar o mesmo valor para a tag <Identifier> da política Reset Quota para atualizar uma contagem específica de cotas. Observe como a tag <Identifier> na política de cotas de destino abaixo corresponde ao valor especificado na política de redefinição de cota:
<Quota name="QuotaPolicy"> <Identifier ref="request.header.clientId"/> <Interval>5</Interval> <TimeUnit>hour</TimeUnit> <Allow count="100"/> </Quota>
Referência de elemento
A referência de elemento descreve os elementos e atributos da 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">
A tabela a seguir descreve atributos comuns a todos os elementos pai de políticas:
Atributo | Descrição | Padrão | Presence |
---|---|---|---|
name |
O nome interno da política. O valor do atributo Opcionalmente, use o elemento |
N/A | Obrigatório |
continueOnError |
Defina como Defina como |
false | Opcional |
enabled |
Defina como Defina como |
true | Opcional |
async |
Esse atributo está obsoleto. |
false | Descontinuado |
Elemento <DisplayName>
Use em conjunto com o atributo name
para rotular a política no
editor de proxy da IU de gerenciamento com um nome de linguagem natural diferente.
<DisplayName>Policy Display Name</DisplayName>
Padrão |
N/A Se você omitir esse elemento, será usado o valor do atributo |
---|---|
Presence | Opcional |
Tipo | String |
Elemento <Quota>
Identifica a política de cota 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>
Padrão: | N/A |
Presença: | Obrigatório |
Tipo: | N/A |
Atributos
Atributo | Descrição | Padrão | Presence |
---|---|---|---|
name |
Especifica o nome da política de cotas de destino. |
N/A | Opcional |
ref | Uma variável de fluxo que contém o nome da política de cotas de destino. Se ref e name forem especificados, ref terá prioridade. Se ref não for resolvido no ambiente de execução, name será usado. | N/A | Opcional |
Elemento <Quota>/<Identifier>
Variável usada para identificar exclusivamente o contador se a política de cota de destino especificar a tag <Identifier>.
<Quota name="quotaName"> <Identifier name="identifierName" ref="request.header.identifier"> <Allow>100</Allow> </Identifier> </Quota>
Padrão: | N/A |
Presença: | Obrigatório |
Tipo: | String |
Atributos
Atributo | Descrição | Padrão | Presence |
---|---|---|---|
name |
Especifica o nome do identificador de contagem na política de cotas de destino. Para uma política de cotas que não use a tag <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 cotas de destino. Se ref e name forem especificados, ref terá prioridade. Se ref não for resolvido no ambiente de execução, name será usado. |
N/A | Opcional |
Elemento <Quota>/<Identifier>/<Allow>
Especifica o valor para diminuir o contador da cota. Você precisa especificar <Allow>. Caso contrário, a política não modificará a cota.
<Identifier name="identifierName" ref="request.header.identifier"> <Allow ref="request.header.allowquota">100</Allow> </Identifier>
Padrão: | N/A |
Presença: | Obrigatório |
Tipo: | Número inteiro |
Atributos
Atributo | Descrição | Padrão | Presence |
---|---|---|---|
ref |
Uma variável de fluxo que contém a alteração na contagem da cota na política de cotas de destino. |
N/A | Opcional |
Elemento <Quota>/<Identifier>/<Class>
Especifica a classe para a qual o contador de cotas é atualizado. Para saber mais sobre como usar a classe com a política de cotas, consulte Política de cotas.
<Identifier name="_default"> <Class ref="request.header.classIdentifier"> <Allow>200</Allow> </Class> </Identifier>
Padrão: | N/A |
Presença: | Opcional |
Tipo: | N/A |
Atributos
Atributo | Descrição | Padrão | Presence |
---|---|---|---|
ref |
Referência à variável de fluxo que contém a classe de cota a ser atualizada. |
N/A | Opcional |
Referência de erros
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 |