Política ResetQuota

Você está vendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
informações

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.

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.

Exemplos

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 Presença
name

O nome interno da política. O valor do atributo name pode conter letras, números, espaços, hifens, sublinhados e pontos. Esse valor não pode exceder 255 caracteres.

Opcionalmente, use o elemento <DisplayName> para rotular a política no editor de proxy da IU de gerenciamento com um nome de linguagem natural diferente.

N/A Obrigatório
continueOnError

Defina como false para retornar um erro quando uma política falhar. Esse é o comportamento esperado na maioria das políticas.

Defina como true para que a execução do fluxo continue, mesmo depois que uma política falhar.

false Opcional
enabled

Defina como true para aplicar a política.

Defina como false para desativar a política. A política não será aplicada mesmo se ela permanecer anexada a um fluxo.

verdadeiro 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 name da política.

Presença 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 Presença
name

Especifica o nome da política de cota 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 Presença
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 Presença
ref

Uma variável de fluxo que contém a alteração na contagem da cota na política de cota 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 Presença
ref

Referência à variável de fluxo que contém a classe de cota a ser atualizada.

N/A Opcional

Referência de erros

Nesta seção, descrevemos os códigos e as mensagens de erro retornados, além das variáveis de falha definidas pelo Edge quando esta política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.

Erros de execução

Esses erros podem ocorrer quando a política é executada.

Código de falha Status HTTP Causa Corrigir
policies.resetquota.InvalidRLPolicy 500 A política de cota especificada no elemento <Quota> da política de redefinição de cota não é definida no proxy da API e, portanto, não está disponível durante o fluxo. O elemento <Quota> é obrigatório e identifica a política de cota de destino cujo contador deve ser atualizado por meio da política de redefinição de cota.
policies.resetquota.FailedToResolveAllowCountRef N/A Não é possível resolver o valor da referência na variável que contém a contagem de permissões no elemento <Allow> da política. Esse elemento é obrigatório e especifica o valor para diminuir o contador de cotas.
policies.resetquota.FailedToResolveRLPolicy 500 A variável referenciada pelo atributo ref no elemento <Quota> não pode ser resolvida.

Erros na implantação

Esses erros podem ocorrer quando você implanta um proxy que contém essa política.

Nome do erro Causa Corrigir
InvalidCount Se o valor de contagem especificado no elemento <Allow> da política de redefinição de cota não for um número inteiro, a implantação do proxy de API vai falhar.

Esquemas

Temas relacionados

Política de cotas