Política ResetQuota

Esta página aplica-se ao Apigee e ao Apigee Hybrid.

Veja a documentação do Apigee Edge.

Ícone de política

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 name pode conter letras, números, espaços, hífenes, sublinhados e pontos finais. Este valor não pode exceder 255 carateres.

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

N/A Obrigatória
continueOnError

Definido como false para devolver um erro quando uma política falha. Este comportamento é o esperado para a maioria das políticas.

Definido como true para que a execução do fluxo continue mesmo depois de uma política falhar. Veja também:

falso Opcional
enabled

Defina como true para aplicar a política.

Defina como false para desativar a política. A política não é aplicada, mesmo que permaneça associada a um fluxo.

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

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

Esta secção descreve os códigos de falha e as mensagens de erro devolvidas, bem como as variáveis de falha definidas pelo Apigee quando esta política aciona um erro. Estas informações são importantes para saber se está a desenvolver regras de falhas para tratar falhas. Para saber mais, consulte o artigo O que precisa de saber acerca dos erros de políticas e o artigo Processamento de falhas.

Erros de tempo de execução

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

Código de falha Estado de HTTP Causa Corrigir
policies.resetquota.InvalidRLPolicy 500 A política Quota especificada no elemento <Quota> da política ResetQuota não está definida no proxy da API e, por isso, não está disponível durante o fluxo. O elemento <Quota> é obrigatório e identifica a política Quota de destino cujo contador deve ser atualizado através da política ResetQuota.
policies.resetquota.FailedToResolveAllowCountRef N/A Não é possível resolver a referência à variável que contém a contagem permitida no elemento <Allow> da política para um valor. Este elemento é obrigatório e especifica o valor para diminuir o contador de quotas.
policies.resetquota.FailedToResolveRLPolicy 500 Não é possível resolver a variável referenciada pelo atributo ref no elemento <Quota>.

Erros de implementação

Estes erros podem ocorrer quando implementa um proxy que contém esta política.

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

Esquemas

Tópicos relacionados

Política de quotas