Esta é a documentação do Apigee Edge.
Acesse
Documentação da Apigee X. informações
InvalidRLPolicy
Código do erro
policies.resetquota.InvalidRLPolicy
Corpo da resposta de erro
{
"fault": {
"faultstring": "Invalid rate limit policy quota_policy_name",
"detail": {
"errorcode": "policies.resetquota.InvalidRLPolicy"
}
}
}Exemplo de mensagem de erro
{
"fault": {
"faultstring": "Invalid rate limit policy MyQuotaPolicy",
"detail": {
"errorcode": "policies.resetquota.InvalidRLPolicy"
}
}
}
Causa
Esse erro ocorrerá se a política de cota especificada no elemento <Quota> da política de redefinição de cota não estiver definida no proxy de API. O elemento <Quota> é obrigatório e identifica a política de cota de destino com o contador que precisa ser atualizado por meio da política de redefinição de cota. Essa política de cota de destino precisa ser criada e definida no mesmo proxy de API e precisa estar disponível durante o fluxo.
Por exemplo, digamos que o elemento <Quota> esteja definido como visto abaixo, mas se MyQuotaPolicy não estiver definido no proxy de API, você receberá o erro acima.
<Quota name="MyQuotaPolicy">
Diagnóstico
Identifique o nome da política de cota inválido especificado na política de redefinição de cota. Encontre o nome da política de cota na string de falha. Por exemplo, na string de falha a seguir, o nome da política de cota é
MyQuotaPolicy:"faultstring": "Invalid rate limit policy MyQuotaPolicy"Examine cada uma das políticas de redefinição de cota no proxy de API em que a falha ocorreu. Identifique a política de redefinição de cota específica, em que a política de cota especificada no elemento obrigatório
<Quota>corresponde ao nome identificado na Etapa 1 acima.Por exemplo, a seguinte política de redefinição de cota especifica uma política de cota chamada
MyQuotaPolicy, que corresponde ao que está na string de falha:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ResetQuota async="false" continueOnError="false" enabled="true" name="Reset_Quota_Demo"> <DisplayName>Reset_Quota_Demo</DisplayName> <Properties/> <Quota name="MyQuotaPolicy"> <Identifier name="identifierName" ref="request.header.identifier"> <Allow>100</Allow> </Identifier> </Quota> </ResetQuota>Determine se essa política de cota foi criada e definida no mesmo proxy de API. Se a política de cota não existir no mesmo proxy de API, essa será a causa do erro.
No exemplo mostrado acima, a política de cota
MyQuotaPolicyprecisa existir no fluxo antes da execução da política de redefinição de cotaReset_Quota_Demo.Como a política de cota
MyQuotaPolicynão existe no fluxo, você receberá o código de erro:
"errorcode": "policies.resetquota.InvalidRLPolicy"
Resolução
Certifique-se de que a política de cota declarada no elemento <Quota> esteja definida no proxy de API. Essa política de cota de destino precisa estar disponível quando a política de redefinição de cota é executada.
FailedToResolveAllowCountRef
Código do erro
policies.resetquota.FailedToResolveAllowCountRef
Corpo da resposta de erro
Failed to resolve allow count reference reference_name for identifier identifier_name in ResetQuotaStepDefinition:policy_name;API Proxy:proxy_name;Revision: revision_number;Environment:env_name;Organization:org_name
Exemplo de mensagem de erro
Failed to resolve allow count reference request.header.allowcount for identifier
identifierName in ResetQuotaStepDefinition:ResetQuota;API Proxy:Reset_Quota;
Revision:10;Environment:test;Organization:demo

O erro retornado ao cliente será simplesmente: policies.ratelimit.QuotaViolation.
Causa
Esse erro ocorrerá se a referência à variável que contém a contagem de permissões no elemento <Allow> da política não puder ser resolvida como um valor. Esse elemento é obrigatório e especifica o valor para diminuir o contador de cotas.
Diagnóstico
Identifique a política de redefinição de cota em que o erro ocorreu e o nome da variável de referência que não pode ser resolvida. Você pode encontrar esses dois itens na resposta de erro.
Por exemplo, na seguinte string de falha, o nome da política é
ResetQuotae a referência érequest.header.allowcount:Failed to resolve allow count reference request.header.allowcount for identifier identifierName in ResetQuotaStepDefinition:ResetQuota;API Proxy:Reset_Quota; Revision:10;Environment:test;Organization:demoNo XML de política de redefinição de cota com falha, verifique se o nome da variável de referência usada corresponde ao nome identificado na resposta de erro (Etapa 1 acima).
Por exemplo, a política a seguir define o elemento com a referência chamada
request.header.allowcount, que corresponde ao que está no erro:<ResetQuota async="false" continueOnError="false" enabled="true" name="ResetQuota"> <DisplayName>ResetQuota</DisplayName> <Properties/> <Quota name="MyQuotaPolicy"> <Identifier name="identifierName"> <Allow ref="request.header.allowcount"/> </Identifier> </Quota> </ResetQuota>Determine se a variável de referência está definida e disponível no fluxo em que a política de redefinição de cota é executada.
Se a variável for:
- fora do escopo (não disponível no fluxo específico em que a política está sendo executada) ou
- não é possível resolver (não está definida)
essa é a causa do erro.
No exemplo mostrado acima, o valor da contagem permitida no elemento
<Allow>precisa ser recuperado do cabeçalho da solicitação chamado allowcount. No entanto, O Edge não conseguiu resolver o request.header.allowcount. Isso acontece quando o cabeçalho allowcount não é transmitido como parte da solicitação de API.Veja um exemplo de solicitação de API que não transmite o cabeçalho allowcount como parte da solicitação:
curl -v http://demo-eval-test.apigee.net/v1/reset_quota -H "Content-Type: application/json"Como o cabeçalho allowcount não é transmitido como parte da solicitação, a variável request.header.allowcount usada no elemento
<Allow>na política de redefinição de cota acima é indefinida e, portanto, não pode ser resolvida. Portanto, você receberá a resposta de erro:Failed to resolve allow count reference request.header.allowcount for identifier identifierName in ResetQuotaStepDefinition:ResetQuota;API Proxy:Reset_Quota; Revision:10;Environment:test;Organization:demo
Resolução
Verifique se a variável mencionada no elemento <Allow> existe/está definida e disponível no fluxo específico, em que a política de redefinição de cota é executada.
Para corrigir o exemplo mostrado acima, você pode modificar a solicitação para incluir o cabeçalho allowcount como mostrado abaixo:
curl -v http://demo-eval-test.apigee.net/v1/reset_quota -H "Content-Type: application/json" -H "allowcount:30"
FailedToResolveRLPolicy
Código do erro
policies.resetquota.FailedToResolveRLPolicy
Corpo da resposta de erro
{
"fault": {
"faultstring": "Failed to resolve rate limit policy",
"detail": {
"errorcode": "policies.resetquota.FailedToResolveRLPolicy"
}
}
}
Exemplo de mensagem de erro
{
"fault": {
"faultstring": "Failed to resolve rate limit policy",
"detail": {
"errorcode": "policies.resetquota.FailedToResolveRLPolicy"
}
}
}
Causa
Esse erro ocorrerá se a variável mencionada pelo atributo ref no elemento <Quota> não puder ser resolvida.
Por exemplo, se o atributo ref estiver definido como request.header.quotapolicy no elemento <Quota>, mas não estiver disponível no fluxo de proxy de API, você receberá o erro acima.
<Quota ref="request.header.quotapolicy">
Diagnóstico
Examine cada uma das políticas de redefinição de cota no proxy de API em que a falha ocorreu e identifique a política de redefinição de cota em que o nome da variável de referência especificada no elemento
<Quota>não pode ser resolvido corretamente.Determine se a variável está definida e disponível no fluxo em que a política de redefinição de cota é executada.
Se a variável for:
- fora do escopo (não disponível no fluxo específico em que a política é executada) ou
- não é possível resolver (não está definida)
essa é a causa do erro.
No exemplo mostrado abaixo, o nome da política de cota de destino deve ser recuperado do cabeçalho da solicitação chamado quotapolicy. No entanto, o Edge não consegue para resolver a request.header.quotapolicy. Isso acontecerá se o cabeçalho quotapolicy não for transmitido como parte da solicitação de API.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ResetQuota async="false" continueOnError="false" enabled="true" name="Reset_Quota_Demo"> <DisplayName>Reset_Quota_Demo</DisplayName> <Properties/> <Quota ref="request.header.quotapolicy"> <Identifier name="identifierName" ref="request.header.identifier"> <Allow>100</Allow> </Identifier> </Quota> </ResetQuota>Veja um exemplo de solicitação de API que não transmite o cabeçalho quotapolicy como parte da solicitação:
curl -v http://demo-eval-test.apigee.net/v1/reset_quota -H "Content-Type: application/json"Como o cabeçalho quotapolicy não foi passado como parte da solicitação, a referência request.header.quotapolicy usada no elemento
<Quota>na política de redefinição de cota acima é indefinida e não pode ser resolvida. Como resultado, você recebe a resposta de erro:"errorcode": "policies.resetquota.FailedToResolveRLPolicy"
Resolução
Verifique se o atributo ref mencionado no elemento <Quota> é resolvido no ambiente de execução e está disponível no fluxo específico, em que a política de redefinição de cota é executada.
Para corrigir o exemplo mostrado acima, você pode modificar a solicitação para incluir o cabeçalho quotapolicy conforme mostrado abaixo:
curl -v http://demo-eval-test.apigee.net/v1/reset_quota -H "Content-Type: application/json" -H "quotapolicy:MyQuotaPolicy"